/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new WaterwayArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, DynamicResource = DynamicResource, SiltationRate = SiltationRate, Status = Status == null ? new string[0] : Array.ConvertAll(Status, s => s), Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new QualityOfNonBathymetricData { CategoryOfTemporalVariation = CategoryOfTemporalVariation, DataAssessment = DataAssessment, SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, FeatureObjectIdentifier = FeatureObjectIdentifier == null ? new FeatureObjectIdentifier() : FeatureObjectIdentifier.DeepClone() as IFeatureObjectIdentifier, HorizontalDistanceUncertainty = HorizontalDistanceUncertainty == null ? new string[0] : Array.ConvertAll(HorizontalDistanceUncertainty, hdu => hdu), HorizontalPositionalUncertainty = HorizontalPositionalUncertainty == null ? new HorizontalPositionalUncertainty() : HorizontalPositionalUncertainty.DeepClone() as IHorizontalPositionalUncertainty, DirectionUncertainty = DirectionUncertainty, SurveyDateRange = SurveyDateRange == null ? new SurveyDateRange() : SurveyDateRange.DeepClone() as ISurveyDateRange, Geometry = Geometry, Id = Id, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new InmarsatOceanRegionArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new WeatherForecastWarningArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FeatureObjectIdentifier = FeatureObjectIdentifier == null ? new FeatureObjectIdentifier() : FeatureObjectIdentifier.DeepClone() as IFeatureObjectIdentifier, FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CategoryOfFrctAndWarningArea = CategoryOfFrctAndWarningArea, Nationality = Nationality, Status = Status, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new NavigationalMeteorologicalArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, Status = Status, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new IspsCodeSecurityLevel { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id ?? "", PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, IspsLevel = IspsLevel, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new CoastguardStation { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CommunicationsChannel = CommunicationsChannel == null ? new string[0] : Array.ConvertAll(CommunicationsChannel, f => f), IsMRCC = IsMRCC, Status = Status == null ? new string[0] : Array.ConvertAll(Status, f => f), Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new CatalogueOfNauticalProduct { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, Graphic = Graphic == null ? new Graphic[0] : Array.ConvertAll(Graphic, g => g.DeepClone() as IGraphic), IssueDate = IssueDate, EditionNumber = EditionNumber, MarineResourceName = MarineResourceName, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new SignalStationWarning { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id ?? "", PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CategoryOfSignalStationWarning = CategoryOfSignalStationWarning == null ? new string[0] : Array.ConvertAll(CategoryOfSignalStationWarning, s => s), CommunicationChannel = CommunicationChannel == null ? new string[0] : Array.ConvertAll(CommunicationChannel, s => s), Status = Status == null ? new string[0] : Array.ConvertAll(Status, s => s), Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new GMDSSArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CategoryOfGMDSSArea = CategoryOfGMDSSArea == null ? new string[0] : Array.ConvertAll(CategoryOfGMDSSArea, s => s), Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new PilotService { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CategoryOfPilot = CategoryOfPilot == null ? new string[0] : Array.ConvertAll(CategoryOfPilot, s => s), PilotQualification = PilotQualification, PilotRequest = PilotRequest, RemotePilot = RemotePilot, NoticeTime = NoticeTime == null ? new NoticeTime() : NoticeTime.DeepClone() as INoticeTime, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new UnderkeelClearanceAllowanceArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id ?? "", PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, UnderkeelAllowance = UnderkeelAllowance == null ? new UnderkeelAllowance() : UnderkeelAllowance.DeepClone() as IUnderkeelAllowance, WaterLevelTrend = WaterLevelTrend, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new VesselTrafficServiceArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CategoryOfVesselTrafficService = CategoryOfVesselTrafficService, ServiceAccessProcedure = ServiceAccessProcedure, RequirementsForMaintenanceOfListeningWatch = RequirementsForMaintenanceOfListeningWatch, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new RouteingMeasure { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id ?? "", PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), CategoryOfRouteingMeasure = CategoryOfRouteingMeasure, CategoryOfTrafficSeparationScheme = CategoryOfTrafficSeparationScheme, CategoryOfNavigationLine = CategoryOfNavigationLine, Geometry = Geometry, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new TextPlacement { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, FlipBearing = FlipBearing, ScaleMinimum = ScaleMinimum, TextJustification = TextJustification, Text = Text, TextType = TextType, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new PaperChart { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, Classification = Classification, Copyright = Copyright, MaximumDisplayScale = MaximumDisplayScale, HorizontalDatumReference = HorizontalDatumReference, HorizontalDatumValue = HorizontalDatumValue, VerticalDatum = VerticalDatum, SoundingDatum = SoundingDatum, ProductType = ProductType, MinimumDisplayScale = MinimumDisplayScale, IssueDate = IssueDate, Purpose = Purpose, Information = Information == null ? new Information[0] : Array.ConvertAll(Information, i => i.DeepClone() as IInformation), Price = Price == null ? new Price[0] : Array.ConvertAll(Price, p => p.DeepClone() as IPrice), ProducingAgency = ProducingAgency == null ? new ProducingAgency() : ProducingAgency.DeepClone() as IProducingAgency, ChartNumber = ChartNumber, DistributionStatus = DistributionStatus, CompilationScale = CompilationScale, EditionNumber = EditionNumber, SpecificUsage = SpecificUsage, ProducerCode = ProducerCode, ProducerNation = ProducerNation, FrameDimensions = FrameDimensions, PrintInformation = PrintInformation == null ? new PrintInformation() : PrintInformation.DeepClone() as IPrintInformation, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new RadioCallingInPoint { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CallSign = CallSign, CommunicationChannel = CommunicationChannel == null ? new string[0] : Array.ConvertAll(CommunicationChannel, s => s), CategoryOfCargo = CategoryOfCargo == null ? new string[0] : Array.ConvertAll(CategoryOfCargo, s => s), CategoryOfVessel = CategoryOfVessel, Orientation = Orientation == null ? new Orientation[0] : Array.ConvertAll(Orientation, o => o.DeepClone() as IOrientation), Status = Status == null ? new string[0] : Array.ConvertAll(Status, s => s), TrafficFlow = TrafficFlow, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new MilitaryPracticeArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FeatureObjectIdentifier = FeatureObjectIdentifier == null ? new FeatureObjectIdentifier() : FeatureObjectIdentifier.DeepClone() as IFeatureObjectIdentifier, FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CategoryOfMilitaryPracticeArea = CategoryOfMilitaryPracticeArea == null ? new string[0] : Array.ConvertAll(CategoryOfMilitaryPracticeArea, s => s), Nationality = Nationality, Restriction = Restriction == null ? new string[0] : Array.ConvertAll(Restriction, s => s), Status = Status == null ? new string[0] : Array.ConvertAll(Status, s => s), Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new PilotBoardingPlace { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CallSign = CallSign, CategoryOfPilotBoardingPlace = CategoryOfPilotBoardingPlace, CategoryOfPreference = CategoryOfPreference, CategoryOfVessel = CategoryOfVessel, CommunicationChannel = CommunicationChannel == null ? new string[0] : Array.ConvertAll(CommunicationChannel, s => s), Destination = Destination, PilotMovement = PilotMovement, PilotVessel = PilotVessel, Status = Status == null ? new string[0] : Array.ConvertAll(Status, s => s), Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new RadioServiceArea { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CallSign = CallSign, CategoryOfBroadcastCommunication = CategoryOfBroadcastCommunication, LanguageInformation = LanguageInformation, RadioCommunications = RadioCommunications == null ? new RadioCommunications[0] : Array.ConvertAll(RadioCommunications, r => r.DeepClone() as IRadioCommunications), Status = Status, TimeReference = TimeReference, TransmissionPower = TransmissionPower, TxIdentChar = TxIdentChar, TxTrafficList = TxTrafficList, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <summary> /// /// </summary> /// <returns></returns> public override IFeature DeepClone() { return(new RadioStation { FeatureName = FeatureName == null ? new[] { new FeatureName() } : Array.ConvertAll(FeatureName, fn => fn.DeepClone() as IFeatureName), FixedDateRange = FixedDateRange == null ? new DateRange() : FixedDateRange.DeepClone() as IDateRange, Id = Id, PeriodicDateRange = PeriodicDateRange == null ? new DateRange[0] : Array.ConvertAll(PeriodicDateRange, p => p.DeepClone() as IDateRange), SourceIndication = SourceIndication == null ? new SourceIndication() : SourceIndication.DeepClone() as ISourceIndication, TextContent = TextContent == null ? new TextContent[0] : Array.ConvertAll(TextContent, t => t.DeepClone() as ITextContent), Geometry = Geometry, CallSign = CallSign, CategoryOfRadioStation = CategoryOfRadioStation, EstimatedRangeOffTransmission = EstimatedRangeOffTransmission, Orientation = Orientation == null ? new Orientation() : Orientation.DeepClone() as IOrientation, RadioCommunications = RadioCommunications == null ? new RadioCommunications[0] : Array.ConvertAll(RadioCommunications, rcd => rcd.DeepClone() as IRadioCommunications), Status = Status, Links = Links == null ? new Link[0] : Array.ConvertAll(Links, l => l.DeepClone() as ILink) }); }
/// <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 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 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 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 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 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 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 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 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); }