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;
                            }
                        }
                    }
                }
            }
        }
Esempio n. 2
0
 public abstract string DescribeFeatureType(string path, DescribeFeatureTypeType describeFeatureTypeType);