private void ParseCapability(WFS_Schemas.WFS_CapabilitiesType readWFSCaps, WFSCapabilities wfsCapabilities)
        {
            // Parse GetFeatureRequest
            wfsCapabilities.Capability          = new WfsCapability();
            wfsCapabilities.Capability.Requests = new WfsRequests();
            wfsCapabilities.Capability.Requests.GetFeaturesRequest         = new WfsGetFeaturesRequest();
            wfsCapabilities.Capability.Requests.DescribeFeatureTypeRequest = new WfsDescribeFeatureTypeRequest();

            for (int i = 0; i < readWFSCaps.Capability.Request.ItemsElementName.Length; i++)
            {
                ItemsChoiceType operation = readWFSCaps.Capability.Request.ItemsElementName[i];

                if (operation == ItemsChoiceType.GetFeature)
                {
                    GetFeatureTypeType getFeatureType = (GetFeatureTypeType)readWFSCaps.Capability.Request.Items[i];
                    // todo - fel i schema för format???

                    foreach (DCPTypeType dcpType in getFeatureType.DCPType)
                    {
                        if (dcpType.HTTP.IsNotEmpty())
                        {
                            if (dcpType.HTTP[0].GetType() == typeof(GetType))
                            {
                                wfsCapabilities.Capability.Requests.GetFeaturesRequest.GetUrl = ((GetType)dcpType.HTTP[0]).onlineResource;
                            }
                            else if (dcpType.HTTP[0].GetType() == typeof(PostType))
                            {
                                wfsCapabilities.Capability.Requests.GetFeaturesRequest.PostUrl = ((PostType)dcpType.HTTP[0]).onlineResource;
                            }
                        }
                    }
                }
                else if (operation == ItemsChoiceType.DescribeFeatureType)
                {
                    DescribeFeatureTypeType describeFeatureType = (DescribeFeatureTypeType)readWFSCaps.Capability.Request.Items[i];

                    foreach (DCPTypeType dcpType in describeFeatureType.DCPType)
                    {
                        if (dcpType.HTTP.IsNotEmpty())
                        {
                            if (dcpType.HTTP[0].GetType() == typeof(GetType))
                            {
                                wfsCapabilities.Capability.Requests.DescribeFeatureTypeRequest.GetUrl = ((GetType)dcpType.HTTP[0]).onlineResource;
                            }
                            else if (dcpType.HTTP[0].GetType() == typeof(PostType))
                            {
                                wfsCapabilities.Capability.Requests.DescribeFeatureTypeRequest.PostUrl = ((PostType)dcpType.HTTP[0]).onlineResource;
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
        /// TBD ?!?
        /// </summary>
        public WFSCapabilities Parse(string xml)
        {
            WFS_Schemas.WFS_CapabilitiesType readWFSCaps = WFS_Schemas.WFS_CapabilitiesType.Deserialize(xml);
            var wfsCapabilities = new WFSCapabilities();

            wfsCapabilities.Version = readWFSCaps.version; // Parse version
            ParseService(readWFSCaps, wfsCapabilities);
            ParseCapability(readWFSCaps, wfsCapabilities);
            ParseFeatureTypes(readWFSCaps, wfsCapabilities);
            ParseXml(xml, wfsCapabilities);

            return(wfsCapabilities);
        }