WFS 1.1 XML Data Binding  - Nuget packge LiquidTechnologies.XmlObjects.WFS1-1 WFS 1.1 XML Data Binding - Nuget packge LiquidTechnologies.XmlObjects.WFS1-1

Home > XML Data Binding Nuget Packages > WFS 1.1

 

OGC Web Feature Service

The OpenGIS Web Feature Service Interface Standard (WFS) defines an interface for specifying requests for retrieving geographic features across the Web using platform-independent calls. The WFS standard defines interfaces and operations for data access and manipulation on a set of geographic features.

NuGet Package ID LiquidTechnologies.XmlObjects.WFS1-1
Description An object model for the WFS 1.1 standard providing strongly typed classes that can be serialized/deserializsed to XML.
Documentation Liquid XML Objects API
Schema Documentation https://schemas.liquid-technologies.com/WFS/1.1/
Official Schema Site http://www.opengeospatial.org/standards/wfs
License EULA
Supported Platforms
  • .Net Standard 2.0 and above
  • .Net Core 2.0 and above
  • .Net Framework 4.0 and above

The following code shows how to create an XML document using the WFS nuget.

First the object is constructed and populated, then the LxSerializer is used to convert the object representation into XML.

using System;
using System.Numerics;
using System.IO;
using System.Text;
using LiquidTechnologies.XmlObjects;
using LiquidTechnologies.XmlObjects.WFS11;
using System.Xml.Linq;
using LiquidTechnologies.XmlObjects;

namespace LiquidTechnologies.Samples
{
    public class XmlGeneratorSample
    {
        public static string CreateXml()
        {
            #region Writing
            var wFS_CapabilitiesElm = new Wfs.WFS_CapabilitiesElm();
            {
                var featureTypeList = new Wfs.FeatureTypeListTypeCt();
                var featureTypes = new Wfs.FeatureTypeTypeCt();
                {
                    featureTypes.Name = "bo:WoodsType";
                    featureTypes.Title = "The Great Northern Forest";
                    featureTypes.Abstract_ = "\n            Describes the arborial diversity of the Great\n            Northern Forest.\n         ";
                    var keywords = new Ows.KeywordsTypeCt();
                    {
                        keywords.Keywords.Add("forest");
                        keywords.Keywords.Add("north");
                        keywords.Keywords.Add("woods");
                        keywords.Keywords.Add("arborial");
                        keywords.Keywords.Add("diversity");
                        featureTypes.Keywords.Add(keywords);
                    }
                    featureTypes.DefaultSRS = "EPSG:62696405";
                    featureTypes.OtherSRSs.Add("EPSG:32615");
                    featureTypes.OtherSRSs.Add("EPSG:32616");
                    featureTypes.OtherSRSs.Add("EPSG:32617");
                    featureTypes.OtherSRSs.Add("EPSG:32618");
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        featureTypes.OutputFormats = outputFormats;
                    }
                    var wGS84BoundingBoxes = new Ows.WGS84BoundingBoxTypeCt();
                    {
                        wGS84BoundingBoxes.LowerCorner = new System.Double[] { -180, -90};
                        wGS84BoundingBoxes.UpperCorner = new System.Double[] { 180, 90};
                        featureTypes.WGS84BoundingBoxes.Add(wGS84BoundingBoxes);
                    }
                    var metadataURLs = new Wfs.MetadataURLTypeCt();
                    {
                        metadataURLs.Type = Wfs.FeatureTypeTypeCt.TypeEnum.FGDC;
                        metadataURLs.Format = Wfs.FeatureTypeTypeCt.FormatEnum.Text_Xml;
                        metadataURLs.Value = "http://www.ogccatservice.example.com/csw.cgi?service=CSW&version=2.0.0&request=GetRecords&constraintlanguage=CQL&constraint=\"recordid=urn:uuid:4ee8b2d3-9409-4a1d-b26b-6782e4fa3d59\"";
                        featureTypes.MetadataURLs.Add(metadataURLs);
                    }
                    featureTypeList.FeatureTypes.Add(featureTypes);
                }
                wFS_CapabilitiesElm.FeatureTypeList = featureTypeList;
            }
            {
                var servesGMLObjectTypeList = new Wfs.GMLObjectTypeListTypeCt();
                var gMLObjectTypes = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes.Name = "bo:OxType";
                    gMLObjectTypes.Title = "Babe's Lineage";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhmtl");
                        gMLObjectTypes.OutputFormats = outputFormats;
                    }
                    servesGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes);
                }
                wFS_CapabilitiesElm.ServesGMLObjectTypeList = servesGMLObjectTypeList;
            }
            {
                var supportsGMLObjectTypeList = new Wfs.GMLObjectTypeListTypeCt();
                var gMLObjectTypes = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes.Name = "gml:AbstractGMLFeatureType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes);
                }
                var gMLObjectTypes1 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes1.Name = "gml:PointType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes1.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes1);
                }
                var gMLObjectTypes2 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes2.Name = "gml:LineStringType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes2.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes2);
                }
                var gMLObjectTypes3 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes3.Name = "gml:PolygonType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes3.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes3);
                }
                var gMLObjectTypes4 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes4.Name = "gml:MultiPointType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes4.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes4);
                }
                var gMLObjectTypes5 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes5.Name = "gml:MultiCurveType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes5.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes5);
                }
                var gMLObjectTypes6 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes6.Name = "gml:MultiSurfaceType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes6.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes6);
                }
                var gMLObjectTypes7 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes7.Name = "gml:AbstractMetaDataType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes7.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes7);
                }
                var gMLObjectTypes8 = new Wfs.GMLObjectTypeTypeCt();
                {
                    gMLObjectTypes8.Name = "gml:AbstractTopologyType";
                    {
                        var outputFormats = new Wfs.OutputFormatListTypeCt();
                        outputFormats.Formats.Add("application/gml+xml; version=3.1");
                        outputFormats.Formats.Add("text/xml; subtype=gml/3.1.1");
                        outputFormats.Formats.Add("text/xhtml");
                        gMLObjectTypes8.OutputFormats = outputFormats;
                    }
                    supportsGMLObjectTypeList.GMLObjectTypes.Add(gMLObjectTypes8);
                }
                wFS_CapabilitiesElm.SupportsGMLObjectTypeList = supportsGMLObjectTypeList;
            }
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Envelope);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Point);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_LineString);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Polygon);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_ArcByCenterPoint);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_CircleByCenterPoint);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Arc);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Circle);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_ArcByBulge);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Bezier);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Clothoid);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_CubicSpline);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Geodesic);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_OffsetCurve);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Triangle);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_PolyhedralSurface);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_TriangulatedSurface);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Tin);
            wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.GeometryOperands.GeometryOperands.Add(Ogc.GeometryOperandTypeEnum.Gml_Solid);
            var spatialOperators = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators.Name = Ogc.SpatialOperatorNameTypeEnum.BBOX;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators);
            }
            var spatialOperators1 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators1.Name = Ogc.SpatialOperatorNameTypeEnum.Equals_;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators1);
            }
            var spatialOperators2 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators2.Name = Ogc.SpatialOperatorNameTypeEnum.Disjoint;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators2);
            }
            var spatialOperators3 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators3.Name = Ogc.SpatialOperatorNameTypeEnum.Intersects;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators3);
            }
            var spatialOperators4 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators4.Name = Ogc.SpatialOperatorNameTypeEnum.Touches;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators4);
            }
            var spatialOperators5 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators5.Name = Ogc.SpatialOperatorNameTypeEnum.Crosses;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators5);
            }
            var spatialOperators6 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators6.Name = Ogc.SpatialOperatorNameTypeEnum.Within;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators6);
            }
            var spatialOperators7 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators7.Name = Ogc.SpatialOperatorNameTypeEnum.Contains;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators7);
            }
            var spatialOperators8 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators8.Name = Ogc.SpatialOperatorNameTypeEnum.Overlaps;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators8);
            }
            var spatialOperators9 = new Ogc.SpatialOperatorTypeCt();
            {
                spatialOperators9.Name = Ogc.SpatialOperatorNameTypeEnum.Beyond;
                wFS_CapabilitiesElm.Filter_Capabilities.Spatial_Capabilities.SpatialOperators.SpatialOperators.Add(spatialOperators9);
            }
            wFS_CapabilitiesElm.Filter_Capabilities.Scalar_Capabilities.LogicalOperators = new XElement("{http://www.opengis.net/ogc}LogicalOperators",
                new XAttribute("{http://www.w3.org/2000/xmlns/}ogc", "http://www.opengis.net/ogc"));
            {
                var comparisonOperators = new Ogc.ComparisonOperatorsTypeCt();
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.LessThan);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.GreaterThan);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.LessThanEqualTo);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.GreaterThanEqualTo);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.EqualTo);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.NotEqualTo);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.Like);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.Between);
                comparisonOperators.ComparisonOperators.Add(Ogc.ComparisonOperatorTypeEnum.NullCheck);
                wFS_CapabilitiesElm.Filter_Capabilities.Scalar_Capabilities.ComparisonOperators = comparisonOperators;
            }
            {
                var arithmeticOperators = new Ogc.ArithmeticOperatorsTypeCt();
                {
                    arithmeticOperators.SimpleArithmetics.Add(new XElement("{http://www.opengis.net/ogc}SimpleArithmetic",
                        new XAttribute("{http://www.w3.org/2000/xmlns/}ogc", "http://www.opengis.net/ogc")));
                }
                var functions = new Ogc.FunctionsTypeCt();
                {
                    var functionNames = new Ogc.FunctionNameTypeCt();
                    {
                        functionNames.NArgs = "1";
                        functionNames.Value = "MIN";
                        functions.FunctionNames.FunctionNames.Add(functionNames);
                    }
                    var functionNames1 = new Ogc.FunctionNameTypeCt();
                    {
                        functionNames1.NArgs = "1";
                        functionNames1.Value = "MAX";
                        functions.FunctionNames.FunctionNames.Add(functionNames1);
                    }
                    var functionNames2 = new Ogc.FunctionNameTypeCt();
                    {
                        functionNames2.NArgs = "1";
                        functionNames2.Value = "SIN";
                        functions.FunctionNames.FunctionNames.Add(functionNames2);
                    }
                    var functionNames3 = new Ogc.FunctionNameTypeCt();
                    {
                        functionNames3.NArgs = "1";
                        functionNames3.Value = "COS";
                        functions.FunctionNames.FunctionNames.Add(functionNames3);
                    }
                    var functionNames4 = new Ogc.FunctionNameTypeCt();
                    {
                        functionNames4.NArgs = "1";
                        functionNames4.Value = "TAN";
                        functions.FunctionNames.FunctionNames.Add(functionNames4);
                    }
                    arithmeticOperators.Functions.Add(functions);
                }
                wFS_CapabilitiesElm.Filter_Capabilities.Scalar_Capabilities.ArithmeticOperators = arithmeticOperators;
            }
            {
                wFS_CapabilitiesElm.Filter_Capabilities.Id_Capabilities.EIDS.Add(new XElement("{http://www.opengis.net/ogc}EID",
                    new XAttribute("{http://www.w3.org/2000/xmlns/}ogc", "http://www.opengis.net/ogc")));
            }
            {
                wFS_CapabilitiesElm.Filter_Capabilities.Id_Capabilities.FIDS.Add(new XElement("{http://www.opengis.net/ogc}FID",
                    new XAttribute("{http://www.w3.org/2000/xmlns/}ogc", "http://www.opengis.net/ogc")));
            }
            wFS_CapabilitiesElm.Version = "1.1.3";
            wFS_CapabilitiesElm.UpdateSequence = "0";
            {
                var serviceIdentification = new Ows.ServiceIdentificationElm();
                serviceIdentification.ServiceType.Value = "WFS";
                serviceIdentification.ServiceTypeVersions.Add("1.1.3");
                serviceIdentification.ServiceTypeVersions.Add("1.1.0");
                serviceIdentification.Fees = "None";
                serviceIdentification.AccessConstraints.Add("None");
                serviceIdentification.Title = "OGC Member WFS";
                serviceIdentification.Abstract_ = "\n         Web Feature Service maintained by NSDI data provider, serving\n         FGDC framework layer XXX; contact Paul.Bunyon@BlueOx.org\n      ";
                var keywords = new Ows.KeywordsTypeCt();
                {
                    keywords.Keywords.Add("FGDC");
                    keywords.Keywords.Add("NSDI");
                    keywords.Keywords.Add("Framework Data Layer");
                    keywords.Keywords.Add("BlueOx");
                    {
                        var type = new Ows.CodeTypeCt();
                        type.Value = "String";
                        keywords.Type = type;
                    }
                    serviceIdentification.Keywords.Add(keywords);
                }
                wFS_CapabilitiesElm.ServiceIdentification = serviceIdentification;
            }
            {
                var serviceProvider = new Ows.ServiceProviderElm();
                serviceProvider.ProviderName = "BlueOx";
                {
                    var providerSite = new Ows.OnlineResourceTypeCt();
                    providerSite.Href = "http://www.blueox.com/";
                    serviceProvider.ProviderSite = providerSite;
                }
                serviceProvider.ServiceContact.IndividualName = "Paul Bunyon";
                serviceProvider.ServiceContact.PositionName = "Mythology Manager";
                {
                    var contactInfo = new Ows.ContactTypeCt();
                    {
                        var phone = new Ows.TelephoneTypeCt();
                        phone.Voices.Add("1.800.BIG.WOOD");
                        phone.Facsimiles.Add("1.800.FAX.WOOD");
                        contactInfo.Phone = phone;
                    }
                    {
                        var address = new Ows.AddressTypeCt();
                        address.DeliveryPoints.Add("North Country");
                        address.City = "Small Town";
                        address.AdministrativeArea = "Rural County";
                        address.PostalCode = "12345";
                        address.Country = "USA";
                        address.ElectronicMailAddresses.Add("Paul.Bunyon@BlueOx.org");
                        contactInfo.Address = address;
                    }
                    {
                        var onlineResource = new Ows.OnlineResourceTypeCt();
                        onlineResource.Href = "http://www.BlueOx.org/contactUs";
                        contactInfo.OnlineResource = onlineResource;
                    }
                    contactInfo.HoursOfService = "24x7";
                    contactInfo.ContactInstructions = "\n               eMail Paul with normal requsts; Phone Paul for emergency\n               requests; if you get voice mail and your request can't wait,\n               contact another mythological figure listed on the contactUs\n               page of our web site.\n            ";
                    serviceProvider.ServiceContact.ContactInfo = contactInfo;
                }
                {
                    var role = new Ows.CodeTypeCt();
                    role.Value = "PointOfContact";
                    serviceProvider.ServiceContact.Role = role;
                }
                wFS_CapabilitiesElm.ServiceProvider = serviceProvider;
            }
            {
                var operationsMetadata = new Ows.OperationsMetadataElm();
                var operations = new Ows.OperationElm();
                {
                    operations.Name = "GetCapabilities";
                    var dCPS = new Ows.DCPElm();
                    {
                        {
                            var hTTP = new Ows.HTTPElm();
                            var gets = new Ows.RequestMethodTypeCt();
                            {
                                gets.Href = "http://www.BlueOx.org/wfs";
                                hTTP.Gets.Add(gets);
                            }
                            dCPS.HTTP = hTTP;
                        }
                        operations.DCPS.Add(dCPS);
                    }
                    var parameters = new Ows.DomainTypeCt();
                    {
                        parameters.Name = "AcceptVersions";
                        parameters.Values.Add("1.1.3");
                        parameters.Values.Add("1.1.0");
                        parameters.Values.Add("1.0.0");
                        operations.Parameters.Add(parameters);
                    }
                    var parameters1 = new Ows.DomainTypeCt();
                    {
                        parameters1.Name = "AcceptFormats";
                        parameters1.Values.Add("text/xml");
                        operations.Parameters.Add(parameters1);
                    }
                    var parameters2 = new Ows.DomainTypeCt();
                    {
                        parameters2.Name = "Sections";
                        parameters2.Values.Add("ServiceIdentification");
                        parameters2.Values.Add("ServiceProvider");
                        parameters2.Values.Add("OperationsMetadata");
                        parameters2.Values.Add("FeatureTypeList");
                        parameters2.Values.Add("ServesGMLObjectTypeList");
                        parameters2.Values.Add("SupportsGMLObjectTypeList");
                        parameters2.Values.Add("Filter_Capabilities");
                        operations.Parameters.Add(parameters2);
                    }
                    operationsMetadata.Operations.Add(operations);
                }
                var operations1 = new Ows.OperationElm();
                {
                    operations1.Name = "DescribeFeatureType";
                    var dCPS = new Ows.DCPElm();
                    {
                        {
                            var hTTP = new Ows.HTTPElm();
                            var gets = new Ows.RequestMethodTypeCt();
                            {
                                gets.Href = "http://www.BlueOx.org/wfs/wfs.cgi?";
                                hTTP.Gets.Add(gets);
                            }
                            var posts = new Ows.RequestMethodTypeCt();
                            {
                                posts.Href = "http://www.BlueOx.org/wfs/wfs.cgi";
                                hTTP.Posts.Add(posts);
                            }
                            dCPS.HTTP = hTTP;
                        }
                        operations1.DCPS.Add(dCPS);
                    }
                    var parameters = new Ows.DomainTypeCt();
                    {
                        parameters.Name = "outputFormat";
                        parameters.Values.Add("application/gml+xml; version=3.1");
                        parameters.Values.Add("text/xml; subtype=gml/3.1.1");
                        operations1.Parameters.Add(parameters);
                    }
                    operationsMetadata.Operations.Add(operations1);
                }
                var operations2 = new Ows.OperationElm();
                {
                    operations2.Name = "GetFeature";
                    var dCPS = new Ows.DCPElm();
                    {
                        {
                            var hTTP = new Ows.HTTPElm();
                            var gets = new Ows.RequestMethodTypeCt();
                            {
                                gets.Href = "http://www.BlueOx.org/wfs/wfs.cgi?";
                                hTTP.Gets.Add(gets);
                            }
                            var posts = new Ows.RequestMethodTypeCt();
                            {
                                posts.Href = "http://www.BlueOx.org/wfs/wfs.cgi";
                                hTTP.Posts.Add(posts);
                            }
                            dCPS.HTTP = hTTP;
                        }
                        operations2.DCPS.Add(dCPS);
                    }
                    var parameters = new Ows.DomainTypeCt();
                    {
                        parameters.Name = "resultType";
                        parameters.Values.Add("results");
                        parameters.Values.Add("hits");
                        operations2.Parameters.Add(parameters);
                    }
                    var parameters1 = new Ows.DomainTypeCt();
                    {
                        parameters1.Name = "outputFormat";
                        parameters1.Values.Add("application/gml+xml; version=3.1");
                        parameters1.Values.Add("text/xml; subtype=gml/3.1.1");
                        operations2.Parameters.Add(parameters1);
                    }
                    operationsMetadata.Operations.Add(operations2);
                }
                var operations3 = new Ows.OperationElm();
                {
                    operations3.Name = "GetFeatureWithLock";
                    var dCPS = new Ows.DCPElm();
                    {
                        {
                            var hTTP = new Ows.HTTPElm();
                            var posts = new Ows.RequestMethodTypeCt();
                            {
                                posts.Href = "http://www.BlueOx.org/wfs";
                                hTTP.Posts.Add(posts);
                            }
                            dCPS.HTTP = hTTP;
                        }
                        operations3.DCPS.Add(dCPS);
                    }
                    var parameters = new Ows.DomainTypeCt();
                    {
                        parameters.Name = "resultType";
                        parameters.Values.Add("results");
                        parameters.Values.Add("hits");
                        operations3.Parameters.Add(parameters);
                    }
                    var parameters1 = new Ows.DomainTypeCt();
                    {
                        parameters1.Name = "outputFormat";
                        parameters1.Values.Add("application/gml+xml; version=3.1");
                        parameters1.Values.Add("text/xml; subtype=gml/3.1.1");
                        operations3.Parameters.Add(parameters1);
                    }
                    operationsMetadata.Operations.Add(operations3);
                }
                var operations4 = new Ows.OperationElm();
                {
                    operations4.Name = "GetGMLObject";
                    var dCPS = new Ows.DCPElm();
                    {
                        {
                            var hTTP = new Ows.HTTPElm();
                            var posts = new Ows.RequestMethodTypeCt();
                            {
                                posts.Href = "http://www.BlueOx.org/wfs";
                                hTTP.Posts.Add(posts);
                            }
                            dCPS.HTTP = hTTP;
                        }
                        operations4.DCPS.Add(dCPS);
                    }
                    var parameters = new Ows.DomainTypeCt();
                    {
                        parameters.Name = "outputFormat";
                        parameters.Values.Add("application/gml+xml; version=3.1");
                        parameters.Values.Add("text/xml; subtype=gml/3.1.1");
                        parameters.Values.Add("text/xhtml");
                        operations4.Parameters.Add(parameters);
                    }
                    var parameters1 = new Ows.DomainTypeCt();
                    {
                        parameters1.Name = "LocalTraverseXLinkScope";
                        parameters1.Values.Add("0");
                        parameters1.Values.Add("*");
                        operations4.Parameters.Add(parameters1);
                    }
                    var parameters2 = new Ows.DomainTypeCt();
                    {
                        parameters2.Name = "RemoteTraverseXLinkScope";
                        parameters2.Values.Add("0");
                        parameters2.Values.Add("*");
                        operations4.Parameters.Add(parameters2);
                    }
                    operationsMetadata.Operations.Add(operations4);
                }
                var operations5 = new Ows.OperationElm();
                {
                    operations5.Name = "LockFeature";
                    var dCPS = new Ows.DCPElm();
                    {
                        {
                            var hTTP = new Ows.HTTPElm();
                            var posts = new Ows.RequestMethodTypeCt();
                            {
                                posts.Href = "http://www.BlueOx.org/wfs";
                                hTTP.Posts.Add(posts);
                            }
                            dCPS.HTTP = hTTP;
                        }
                        operations5.DCPS.Add(dCPS);
                    }
                    var parameters = new Ows.DomainTypeCt();
                    {
                        parameters.Name = "lockAction";
                        parameters.Values.Add("ALL");
                        parameters.Values.Add("SOME");
                        operations5.Parameters.Add(parameters);
                    }
                    operationsMetadata.Operations.Add(operations5);
                }
                var operations6 = new Ows.OperationElm();
                {
                    operations6.Name = "Transaction";
                    var dCPS = new Ows.DCPElm();
                    {
                        {
                            var hTTP = new Ows.HTTPElm();
                            var posts = new Ows.RequestMethodTypeCt();
                            {
                                posts.Href = "http://www.BlueOx.org/wfs";
                                hTTP.Posts.Add(posts);
                            }
                            dCPS.HTTP = hTTP;
                        }
                        operations6.DCPS.Add(dCPS);
                    }
                    var parameters = new Ows.DomainTypeCt();
                    {
                        parameters.Name = "inputFormat";
                        parameters.Values.Add("application/gml+xml; version=3.1");
                        parameters.Values.Add("text/xml; subtype=gml/3.1.1");
                        operations6.Parameters.Add(parameters);
                    }
                    var parameters1 = new Ows.DomainTypeCt();
                    {
                        parameters1.Name = "idgen";
                        parameters1.Values.Add("GenerateNew");
                        parameters1.Values.Add("UseExisting");
                        parameters1.Values.Add("ReplaceDuplicate");
                        operations6.Parameters.Add(parameters1);
                    }
                    var parameters2 = new Ows.DomainTypeCt();
                    {
                        parameters2.Name = "releaseAction";
                        parameters2.Values.Add("ALL");
                        parameters2.Values.Add("SOME");
                        operations6.Parameters.Add(parameters2);
                    }
                    operationsMetadata.Operations.Add(operations6);
                }
                var parameters = new Ows.DomainTypeCt();
                {
                    parameters.Name = "srsName";
                    parameters.Values.Add("EPSG:4326");
                    parameters.Values.Add("EPSG:32100");
                    parameters.Values.Add("EPSG:32101");
                    parameters.Values.Add("EPSG:32102");
                    operationsMetadata.Parameters.Add(parameters);
                }
                var constraints = new Ows.DomainTypeCt();
                {
                    constraints.Name = "DefaultMaxFeatures";
                    constraints.Values.Add("10000");
                    operationsMetadata.Constraints.Add(constraints);
                }
                var constraints1 = new Ows.DomainTypeCt();
                {
                    constraints1.Name = "LocalTraverseXLinkScope";
                    constraints1.Values.Add("0");
                    constraints1.Values.Add("*");
                    operationsMetadata.Constraints.Add(constraints1);
                }
                var constraints2 = new Ows.DomainTypeCt();
                {
                    constraints2.Name = "RemoteTraverseXLinkScope";
                    constraints2.Values.Add("0");
                    constraints2.Values.Add("*");
                    operationsMetadata.Constraints.Add(constraints2);
                }
                var constraints3 = new Ows.DomainTypeCt();
                {
                    constraints3.Name = "DefaultLockExpiry";
                    constraints3.Values.Add("5");
                    operationsMetadata.Constraints.Add(constraints3);
                }
                wFS_CapabilitiesElm.OperationsMetadata = operationsMetadata;
            }


            var serializer = new LxSerializer<Wfs.WFS_CapabilitiesElm>();
            using (StringWriter writer = new StringWriter())
            {
                serializer.Serialize(writer, wFS_CapabilitiesElm);
                return writer.ToString();
            }
            #endregion
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<wfs:WFS_Capabilities xmlns:ows="http://www.opengis.net/ows" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.3/wfs.xsd" version="1.1.3" updateSequence="0">

   <!-- ================================================================== -->
   <!--    SERVICE IDENTIFICATION SECTION                                  -->
   <!-- ================================================================== -->
   <ows:ServiceIdentification>
      <ows:Title>OGC Member WFS</ows:Title>
      <ows:Abstract>
         Web Feature Service maintained by NSDI data provider, serving
         FGDC framework layer XXX; contact Paul.Bunyon@BlueOx.org
      </ows:Abstract>
      <ows:Keywords>
         <ows:Keyword>FGDC</ows:Keyword>
         <ows:Keyword>NSDI</ows:Keyword>
         <ows:Keyword>Framework Data Layer</ows:Keyword>
         <ows:Keyword>BlueOx</ows:Keyword>
         <ows:Type>String</ows:Type>
      </ows:Keywords>
      <ows:ServiceType>WFS</ows:ServiceType>
      <ows:ServiceTypeVersion>1.1.3</ows:ServiceTypeVersion>
      <ows:ServiceTypeVersion>1.1.0</ows:ServiceTypeVersion>
      <ows:Fees>None</ows:Fees>
      <ows:AccessConstraints>None</ows:AccessConstraints>
   </ows:ServiceIdentification>

   <!-- ================================================================== -->
   <!--    SERVICE PROVIDER SECTION                                        -->
   <!-- ================================================================== -->
   <ows:ServiceProvider>
      <ows:ProviderName>BlueOx</ows:ProviderName>
      <ows:ProviderSite xlink:href="http://www.blueox.com/"/>
      <ows:ServiceContact>
         <ows:IndividualName>Paul Bunyon</ows:IndividualName>
         <ows:PositionName>Mythology Manager</ows:PositionName>
         <ows:ContactInfo>
            <ows:Phone>
               <ows:Voice>1.800.BIG.WOOD</ows:Voice>
               <ows:Facsimile>1.800.FAX.WOOD</ows:Facsimile>
            </ows:Phone>
            <ows:Address>
               <ows:DeliveryPoint>North Country</ows:DeliveryPoint>
               <ows:City>Small Town</ows:City>
               <ows:AdministrativeArea>Rural County</ows:AdministrativeArea>
               <ows:PostalCode>12345</ows:PostalCode>
               <ows:Country>USA</ows:Country>
               <ows:ElectronicMailAddress>Paul.Bunyon@BlueOx.org</ows:ElectronicMailAddress>
            </ows:Address>
            <ows:OnlineResource xlink:href="http://www.BlueOx.org/contactUs"/>
            <ows:HoursOfService>24x7</ows:HoursOfService>
            <ows:ContactInstructions>
               eMail Paul with normal requsts; Phone Paul for emergency
               requests; if you get voice mail and your request can't wait,
               contact another mythological figure listed on the contactUs
               page of our web site.
            </ows:ContactInstructions>
         </ows:ContactInfo>
         <ows:Role>PointOfContact</ows:Role>
      </ows:ServiceContact>
   </ows:ServiceProvider>

   <!-- ================================================================== -->
   <!--    OPERATIONS METADATA SECTION                                     -->
   <!-- ================================================================== -->
   <ows:OperationsMetadata>
      <ows:Operation name="GetCapabilities">
         <ows:DCP>
            <ows:HTTP>
               <ows:Get xlink:href="http://www.BlueOx.org/wfs"/>
            </ows:HTTP>
         </ows:DCP>
         <ows:Parameter name="AcceptVersions">
            <ows:Value>1.1.3</ows:Value>
            <ows:Value>1.1.0</ows:Value>
            <ows:Value>1.0.0</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="AcceptFormats">
            <ows:Value>text/xml</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="Sections">
            <ows:Value>ServiceIdentification</ows:Value>
            <ows:Value>ServiceProvider</ows:Value>
            <ows:Value>OperationsMetadata</ows:Value>
            <ows:Value>FeatureTypeList</ows:Value>
            <ows:Value>ServesGMLObjectTypeList</ows:Value>
            <ows:Value>SupportsGMLObjectTypeList</ows:Value>
            <ows:Value>Filter_Capabilities</ows:Value>
         </ows:Parameter>
      </ows:Operation>
      <ows:Operation name="DescribeFeatureType">
         <ows:DCP>
            <ows:HTTP>
               <ows:Get xlink:href="http://www.BlueOx.org/wfs/wfs.cgi?"/>
               <ows:Post xlink:href="http://www.BlueOx.org/wfs/wfs.cgi"/>
            </ows:HTTP>
         </ows:DCP>
         <ows:Parameter name="outputFormat">
            <ows:Value>application/gml+xml; version=3.1</ows:Value>
            <ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
         </ows:Parameter>
      </ows:Operation>
      <ows:Operation name="GetFeature">
         <ows:DCP>
            <ows:HTTP>
               <ows:Get xlink:href="http://www.BlueOx.org/wfs/wfs.cgi?"/>
               <ows:Post xlink:href="http://www.BlueOx.org/wfs/wfs.cgi"/>
            </ows:HTTP>
         </ows:DCP>
         <ows:Parameter name="resultType">
            <ows:Value>results</ows:Value>
            <ows:Value>hits</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="outputFormat">
            <ows:Value>application/gml+xml; version=3.1</ows:Value>
            <ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
         </ows:Parameter>
      </ows:Operation>
      <ows:Operation name="GetFeatureWithLock">
         <ows:DCP>
            <ows:HTTP>
               <ows:Post xlink:href="http://www.BlueOx.org/wfs"/>
            </ows:HTTP>
         </ows:DCP>
         <ows:Parameter name="resultType">
            <ows:Value>results</ows:Value>
            <ows:Value>hits</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="outputFormat">
            <ows:Value>application/gml+xml; version=3.1</ows:Value>
            <ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
         </ows:Parameter>
      </ows:Operation>
      <ows:Operation name="GetGMLObject">
         <ows:DCP>
            <ows:HTTP>
               <ows:Post xlink:href="http://www.BlueOx.org/wfs"/>
            </ows:HTTP>
         </ows:DCP>
         <ows:Parameter name="outputFormat">
            <ows:Value>application/gml+xml; version=3.1</ows:Value>
            <ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
            <ows:Value>text/xhtml</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="LocalTraverseXLinkScope">
            <ows:Value>0</ows:Value>
            <ows:Value>*</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="RemoteTraverseXLinkScope">
            <ows:Value>0</ows:Value>
            <ows:Value>*</ows:Value>
         </ows:Parameter>
      </ows:Operation>
      <ows:Operation name="LockFeature">
         <ows:DCP>
            <ows:HTTP>
               <ows:Post xlink:href="http://www.BlueOx.org/wfs"/>
            </ows:HTTP>
         </ows:DCP>
         <ows:Parameter name="lockAction">
            <ows:Value>ALL</ows:Value>
            <ows:Value>SOME</ows:Value>
         </ows:Parameter>
      </ows:Operation>
      <ows:Operation name="Transaction">
         <ows:DCP>
            <ows:HTTP>
               <ows:Post xlink:href="http://www.BlueOx.org/wfs"/>
            </ows:HTTP>
         </ows:DCP>
         <ows:Parameter name="inputFormat">
            <ows:Value>application/gml+xml; version=3.1</ows:Value>
            <ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="idgen">
            <ows:Value>GenerateNew</ows:Value>
            <ows:Value>UseExisting</ows:Value>
            <ows:Value>ReplaceDuplicate</ows:Value>
         </ows:Parameter>
         <ows:Parameter name="releaseAction">
            <ows:Value>ALL</ows:Value>
            <ows:Value>SOME</ows:Value>
         </ows:Parameter>
      </ows:Operation>
      <ows:Parameter name="srsName">
         <ows:Value>EPSG:4326</ows:Value>
         <ows:Value>EPSG:32100</ows:Value>
         <ows:Value>EPSG:32101</ows:Value>
         <ows:Value>EPSG:32102</ows:Value>
      </ows:Parameter>
      <ows:Constraint name="DefaultMaxFeatures">
         <ows:Value>10000</ows:Value>
      </ows:Constraint>
      <ows:Constraint name="LocalTraverseXLinkScope">
         <ows:Value>0</ows:Value>
         <ows:Value>*</ows:Value>
      </ows:Constraint>
      <ows:Constraint name="RemoteTraverseXLinkScope">
         <ows:Value>0</ows:Value>
         <ows:Value>*</ows:Value>
      </ows:Constraint>
      <ows:Constraint name="DefaultLockExpiry">
         <ows:Value>5</ows:Value>
      </ows:Constraint>
   </ows:OperationsMetadata>

   <!-- ================================================================== -->
   <!--    FEATURE TYPE LIST SECTION                                       -->
   <!-- ================================================================== -->
   <wfs:FeatureTypeList>
      <wfs:FeatureType xmlns:bo="http://www.BlueOx.org/BlueOx">
         <wfs:Name>bo:WoodsType</wfs:Name>
         <wfs:Title>The Great Northern Forest</wfs:Title>
         <wfs:Abstract>
            Describes the arborial diversity of the Great
            Northern Forest.
         </wfs:Abstract>
         <ows:Keywords>
            <ows:Keyword>forest</ows:Keyword>
            <ows:Keyword>north</ows:Keyword>
            <ows:Keyword>woods</ows:Keyword>
            <ows:Keyword>arborial</ows:Keyword>
            <ows:Keyword>diversity</ows:Keyword>
         </ows:Keywords>
         <wfs:DefaultSRS>EPSG:62696405</wfs:DefaultSRS>
         <wfs:OtherSRS>EPSG:32615</wfs:OtherSRS>
         <wfs:OtherSRS>EPSG:32616</wfs:OtherSRS>
         <wfs:OtherSRS>EPSG:32617</wfs:OtherSRS>
         <wfs:OtherSRS>EPSG:32618</wfs:OtherSRS>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
         </wfs:OutputFormats>
         <ows:WGS84BoundingBox>
            <ows:LowerCorner>-180 -90</ows:LowerCorner>
            <ows:UpperCorner>180 90</ows:UpperCorner>
         </ows:WGS84BoundingBox>
         <wfs:MetadataURL type="FGDC" format="text/xml">http://www.ogccatservice.example.com/csw.cgi?service=CSW&amp;version=2.0.0&amp;request=GetRecords&amp;constraintlanguage=CQL&amp;constraint="recordid=urn:uuid:4ee8b2d3-9409-4a1d-b26b-6782e4fa3d59"</wfs:MetadataURL>
      </wfs:FeatureType>
   </wfs:FeatureTypeList>

   <!-- ================================================================== -->
   <!--    SERVES GML OBJECT TYPE LIST SECTION                             -->
   <!-- ================================================================== -->
   <wfs:ServesGMLObjectTypeList>
      <wfs:GMLObjectType xmlns:bo="http://www.BlueOx.org/BlueOx">
         <wfs:Name>bo:OxType</wfs:Name>
         <wfs:Title>Babe's Lineage</wfs:Title>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhmtl</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
   </wfs:ServesGMLObjectTypeList>

   <!-- ================================================================== -->
   <!--    SUPPORTS GML OBJECT TYPE LIST SECTION                           -->
   <!-- ================================================================== -->
   <wfs:SupportsGMLObjectTypeList>
      <wfs:GMLObjectType>
         <wfs:Name>gml:AbstractGMLFeatureType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:PointType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:LineStringType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:PolygonType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:MultiPointType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:MultiCurveType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:MultiSurfaceType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:AbstractMetaDataType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
      <wfs:GMLObjectType>
         <wfs:Name>gml:AbstractTopologyType</wfs:Name>
         <wfs:OutputFormats>
            <wfs:Format>application/gml+xml; version=3.1</wfs:Format>
            <wfs:Format>text/xml; subtype=gml/3.1.1</wfs:Format>
            <wfs:Format>text/xhtml</wfs:Format>
         </wfs:OutputFormats>
      </wfs:GMLObjectType>
   </wfs:SupportsGMLObjectTypeList>

   <!-- ================================================================== -->
   <!--    FILTER CAPABILITIES SECTION                                     -->
   <!-- ================================================================== -->
   <ogc:Filter_Capabilities>
      <ogc:Spatial_Capabilities>
         <ogc:GeometryOperands>
            <ogc:GeometryOperand>gml:Envelope</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Point</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:LineString</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Polygon</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:ArcByCenterPoint</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:CircleByCenterPoint</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Arc</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Circle</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:ArcByBulge</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Bezier</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Clothoid</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:CubicSpline</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Geodesic</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:OffsetCurve</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Triangle</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:PolyhedralSurface</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:TriangulatedSurface</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Tin</ogc:GeometryOperand>
            <ogc:GeometryOperand>gml:Solid</ogc:GeometryOperand>
         </ogc:GeometryOperands>
         <ogc:SpatialOperators>
            <ogc:SpatialOperator name="BBOX"/>
            <ogc:SpatialOperator name="Equals"/>
            <ogc:SpatialOperator name="Disjoint"/>
            <ogc:SpatialOperator name="Intersects"/>
            <ogc:SpatialOperator name="Touches"/>
            <ogc:SpatialOperator name="Crosses"/>
            <ogc:SpatialOperator name="Within"/>
            <ogc:SpatialOperator name="Contains"/>
            <ogc:SpatialOperator name="Overlaps"/>
            <ogc:SpatialOperator name="Beyond"/>
         </ogc:SpatialOperators>
      </ogc:Spatial_Capabilities>
      <ogc:Scalar_Capabilities>
         <ogc:LogicalOperators/>
         <ogc:ComparisonOperators>
           <ogc:ComparisonOperator>LessThan</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>GreaterThan</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>LessThanEqualTo</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>GreaterThanEqualTo</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>EqualTo</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>NotEqualTo</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>Like</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>Between</ogc:ComparisonOperator>
           <ogc:ComparisonOperator>NullCheck</ogc:ComparisonOperator>
         </ogc:ComparisonOperators>
         <ogc:ArithmeticOperators>
            <ogc:SimpleArithmetic/>
            <ogc:Functions>
               <ogc:FunctionNames>
                  <ogc:FunctionName nArgs="1">MIN</ogc:FunctionName>
                  <ogc:FunctionName nArgs="1">MAX</ogc:FunctionName>
                  <ogc:FunctionName nArgs="1">SIN</ogc:FunctionName>
                  <ogc:FunctionName nArgs="1">COS</ogc:FunctionName>
                  <ogc:FunctionName nArgs="1">TAN</ogc:FunctionName>
               </ogc:FunctionNames>
            </ogc:Functions>
         </ogc:ArithmeticOperators>
      </ogc:Scalar_Capabilities>
      <ogc:Id_Capabilities>
         <ogc:EID/>
         <ogc:FID/>
      </ogc:Id_Capabilities>
   </ogc:Filter_Capabilities>
</wfs:WFS_Capabilities>

Video Tutorial

This video tutorial demonstrates the basic usage of the XML Objects tool, showing how to generate code from an XSD, read an XML document into the object model, modify the data and write out the XML.

Try Liquid Studio and see how we can help you today Free Trial