wfs200

package
v0.2.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Service = `WFS`
	Version = `2.0.0`
)
View Source
const (
	SERVICE = `SERVICE`
	REQUEST = `REQUEST`
	VERSION = `VERSION`

	OUTPUTFORMAT = `OUTPUTFORMAT`
)

WFS 2.0.0 Tokens

View Source
const (

	// table5
	STARTINDEX = `STARTINDEX`
	COUNT      = `COUNT`
	RESULTTYPE = `RESULTTYPE`
	// table6
	RESOLVE        = `RESOLVE`
	RESOLVEDEPTH   = `RESOLVEDEPTH`
	RESOLVETIMEOUT = `RESOLVETIMEOUT`
	// table7
	NAMESPACES = `NAMESPACES`
	// table8
	TYPENAMES      = `TYPENAMES`
	ALIASES        = `ALIASES`
	SRSNAME        = `SRSNAME`
	FILTER         = `FILTER`
	FILTERLANGUAGE = `FILTER_LANGUAGE`
	RESOURCEID     = `RESOURCEID`
	BBOX           = `BBOX` // OGC 06-121r3
	SORTBY         = `SORTBY`
	// table10
	STOREDQUERYID = `STOREDQUERY_ID`
)
View Source
const (
	TYPENAME = `TYPENAME` //NOTE: TYPENAME for Parameter Value encoding & typeNames for XML encoding
)

Variables

This section is empty.

Functions

func CannotLockAllFeatures

func CannotLockAllFeatures() wsc110.Exception

CannotLockAllFeatures exception

func DuplicateStoredQueryIDValue

func DuplicateStoredQueryIDValue() wsc110.Exception

DuplicateStoredQueryIDValue exception

func DuplicateStoredQueryParameterName

func DuplicateStoredQueryParameterName() wsc110.Exception

DuplicateStoredQueryParameterName exception

func FeaturesNotLocked

func FeaturesNotLocked() wsc110.Exception

FeaturesNotLocked exception

func InvalidLockID

func InvalidLockID() wsc110.Exception

InvalidLockID exception

func InvalidValue

func InvalidValue(s ...string) wsc110.Exception

InvalidValue exception

func LockHasExpired

func LockHasExpired() wsc110.Exception

LockHasExpired exception

func OperationParsingFailed

func OperationParsingFailed(value, locator string) wsc110.Exception

OperationParsingFailed exception

func OperationProcessingFailed

func OperationProcessingFailed() wsc110.Exception

OperationProcessingFailed exception

func ResponseCacheExpired

func ResponseCacheExpired() wsc110.Exception

ResponseCacheExpired exception

Types

type AND

type AND struct {
	AND *AND `xml:"AND" yaml:"and"`
	OR  *OR  `xml:"OR" yaml:"or"`
	NOT *NOT `xml:"NOT" yaml:"not"`
	ComparisonOperator
	SpatialOperator
}

AND struct for Filter

type AllowedValues

type AllowedValues struct {
	Value []string `xml:"ows:Value" yaml:"value"`
}

AllowedValues struct so it can be used as a pointer

type BaseDescribeFeatureTypeRequest

type BaseDescribeFeatureTypeRequest struct {
	OutputFormat *string `xml:"outputFormat,attr" yaml:"outputformat"`
	TypeName     *string `xml:"typeNames,attr" yaml:"typenames"`
}

BaseDescribeFeatureTypeRequest struct used by GetFeature

type BaseRequest

type BaseRequest struct {
	Service string             `xml:"service,attr" yaml:"service,omitempty"`
	Version string             `xml:"version,attr" yaml:"version"`
	Attr    utils.XMLAttribute `xml:",attr"`
}

BaseRequest based on Table 5 WFS2.0.0 spec Note: not usable for GetCapabilities request regarding deviation of Optional/Mandatory parameters SERVICE and VERSION

type Beyond

type Beyond struct {
	Units string `xml:"unit,attr" yaml:"unit"`
	GeometryOperand
	Distance Distance `xml:"Distance" yaml:"distance"`
}

Beyond for SpatialOperator

type Box

type Box struct {
	Geometry
}

Box struct for GeometryOperand

type CRS added in v0.2.11

type CRS struct {
	Namespace string //TODO maybe AuthorityType is a better name...?
	Code      int
}

CRS struct with namespace/authority/registry and code

func (*CRS) Identifier added in v0.2.11

func (c *CRS) Identifier() string

Identifier returns the EPSG

func (*CRS) MarshalXML added in v0.2.11

func (c *CRS) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML Position

func (*CRS) ParseString added in v0.2.11

func (c *CRS) ParseString(s string)

ParseString build CRS struct from input string

func (*CRS) String added in v0.2.11

func (c *CRS) String() string

String of the EPSGCode

func (*CRS) UnmarshalXML added in v0.2.11

func (c *CRS) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error

UnmarshalXML Position

func (*CRS) UnmarshalYAML added in v0.2.11

func (c *CRS) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML CRS

type Capabilities added in v0.2.0

type Capabilities struct {
	OperationsMetadata OperationsMetadata `xml:"ows:OperationsMetadata" yaml:"operationsmetadata"`
	FeatureTypeList    FeatureTypeList    `xml:"FeatureTypeList" yaml:"featuretypelist"`
	FilterCapabilities FilterCapabilities `xml:"fes:Filter_Capabilities" yaml:"filtercapabilities"`
}

Capabilities struct

func (*Capabilities) ParseXML added in v0.2.0

func (c *Capabilities) ParseXML(doc []byte) error

ParseXML func

func (*Capabilities) ParseYAML added in v0.2.0

func (c *Capabilities) ParseYAML(doc []byte) error

ParseYAML func

type ComparisonOperator

type ComparisonOperator struct {
	PropertyIsEqualTo              *[]PropertyIsEqualTo              `xml:"PropertyIsEqualTo" yaml:"propertyisequalto"`
	PropertyIsNotEqualTo           *[]PropertyIsNotEqualTo           `xml:"PropertyIsNotEqualTo" yaml:"propertyisnotequalto"`
	PropertyIsLessThan             *[]PropertyIsLessThan             `xml:"PropertyIsLessThan" yaml:"propertyislessthan"`
	PropertyIsGreaterThan          *[]PropertyIsGreaterThan          `xml:"PropertyIsGreaterThan" yaml:"propertyisgreaterthan"`
	PropertyIsLessThanOrEqualTo    *[]PropertyIsLessThanOrEqualTo    `xml:"PropertyIsLessThanOrEqualTo" yaml:"propertyislessthanorequalto"`
	PropertyIsGreaterThanOrEqualTo *[]PropertyIsGreaterThanOrEqualTo `xml:"PropertyIsGreaterThanOrEqualTo" yaml:"propertyisgreaterthanorequalto"`
	PropertyIsBetween              *[]PropertyIsBetween              `xml:"PropertyIsBetween" yaml:"propertyisbetween"`
	PropertyIsLike                 *[]PropertyIsLike                 `xml:"PropertyIsLike" yaml:"propertyislike"`
}

ComparisonOperator struct for Filter

type ComparisonOperatorAttribute

type ComparisonOperatorAttribute struct {
	MatchCase      *string `xml:"matchCase,attr" yaml:"matchcase"`
	PropertyName   *string `xml:"PropertyName" yaml:"propertyname"`     // property i.e: id
	ValueReference *string `xml:"ValueReference" yaml:"valuereference"` // path to a property i.e: the/path/to/a/id/in/a/document or just a id ...
	Literal        string  `xml:"Literal" yaml:"literal"`
}

ComparisonOperatorAttribute struct for the ComparisonOperators

type Constraint

type Constraint struct {
	Text          string         `xml:",chardata"`
	Name          string         `xml:"name,attr" yaml:"name"`
	NoValues      *string        `xml:"ows:NoValues" yaml:"novalues"`
	DefaultValue  *string        `xml:"ows:DefaultValue" yaml:"defaultvalue"`
	AllowedValues *AllowedValues `xml:"ows:AllowedValues" yaml:"allowedvalues"`
}

Constraint struct for the WFS 2.0.0

func (Constraint) MarshalXML added in v0.2.9

func (c Constraint) MarshalXML(e *xml.Encoder, start xml.StartElement) error

when AllowedValues are defined, NoValues should not be present and vice versa

type Contains

type Contains struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Contains for SpatialOperator

type Crosses

type Crosses struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Crosses for SpatialOperator

type Curve

type Curve struct {
	Geometry
}

Curve struct for GeometryOperand

type DWithin

type DWithin struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
	Distance Distance `xml:"Distance" yaml:"distance"`
}

DWithin for SpatialOperator

type DescribeFeatureTypeRequest added in v0.2.0

type DescribeFeatureTypeRequest struct {
	XMLName xml.Name `xml:"DescribeFeatureType" yaml:"describefeaturetype"`
	BaseRequest
	BaseDescribeFeatureTypeRequest
}

DescribeFeatureTypeRequest struct with the needed parameters/attributes needed for making a DescribeFeatureType request

func (*DescribeFeatureTypeRequest) ParseQueryParameters added in v0.2.2

func (d *DescribeFeatureTypeRequest) ParseQueryParameters(query url.Values) []wsc110.Exception

ParseQueryParameters builds a DescribeFeatureType object based on the available query parameters

func (*DescribeFeatureTypeRequest) ParseXML added in v0.2.0

func (d *DescribeFeatureTypeRequest) ParseXML(doc []byte) []wsc110.Exception

ParseXML builds a DescribeFeatureType object based on a XML document

func (DescribeFeatureTypeRequest) ToQueryParameters added in v0.2.2

func (d DescribeFeatureTypeRequest) ToQueryParameters() url.Values

ToQueryParameters builds a new query string that will be proxied

func (DescribeFeatureTypeRequest) ToXML added in v0.2.2

func (d DescribeFeatureTypeRequest) ToXML() []byte

ToXML builds a 'new' XML document 'based' on the 'original' XML document

func (DescribeFeatureTypeRequest) Type added in v0.2.0

Type returns DescribeFeatureType

func (DescribeFeatureTypeRequest) Validate added in v0.2.0

Validate returns GetCapabilities

type Disjoint

type Disjoint struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Disjoint for SpatialOperator

type Distance

type Distance struct {
	Units string `xml:"units,attr" yaml:"unit"`
	Text  string `xml:",chardata"`
}

Distance for DWithin and Beyond

type Envelope

type Envelope struct {
	LowerCorner wsc110.Position `xml:"lowerCorner" yaml:"lowercorner"`
	UpperCorner wsc110.Position `xml:"upperCorner" yaml:"uppercorner"`
}

Envelope struct for GeometryOperand

type Equals

type Equals struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Equals for SpatialOperator

type ExtendedCapabilities

type ExtendedCapabilities struct {
	ExtendedCapabilities struct {
		Text        string `xml:",chardata"`
		MetadataURL struct {
			URL       string `xml:"inspire_common:URL" yaml:"url"`
			MediaType string `xml:"inspire_common:MediaType" yaml:"mediatype"`
		} `xml:"inspire_common:MetadataUrl" yaml:"metadataurl"`
		SupportedLanguages struct {
			DefaultLanguage struct {
				Language string `xml:"inspire_common:Language" yaml:"language"`
			} `xml:"inspire_common:DefaultLanguage" yaml:"defaultlanguage"`
			SupportedLanguage *[]struct {
				Language string `xml:"inspire_common:Language" yaml:"language"`
			} `xml:"inspire_common:SupportedLanguage" yaml:"supportedlanguage"`
		} `xml:"inspire_common:SupportedLanguages" yaml:"supportedlanguages"`
		ResponseLanguage struct {
			Language string `xml:"inspire_common:Language" yaml:"language"`
		} `xml:"inspire_common:ResponseLanguage" yaml:"responselanguage"`
		SpatialDataSetIdentifier struct {
			Code string `xml:"inspire_common:Code" yaml:"code"`
		} `xml:"inspire_dls:SpatialDataSetIdentifier" yaml:"spatialdatasetidentifier"`
	} `xml:"inspire_dls:ExtendedCapabilities" yaml:"extendedcapabilities"`
}

ExtendedCapabilities struct for the WFS 2.0.0

type FeatureType

type FeatureType struct {
	Name          string             `xml:"Name" yaml:"name"`
	Title         string             `xml:"Title" yaml:"title"`
	Abstract      string             `xml:"Abstract" yaml:"abstract"`
	Keywords      *[]wsc110.Keywords `xml:"ows:Keywords" yaml:"keywords"`
	DefaultCRS    *CRS               `xml:"DefaultCRS" yaml:"defaultcrs"`
	OtherCRS      *[]CRS             `xml:"OtherCRS" yaml:"othercrs"`
	OutputFormats struct {
		Format []string `xml:"Format" yaml:"format"`
	} `xml:"OutputFormats" yaml:"outputformats"`
	WGS84BoundingBox *wsc110.WGS84BoundingBox `xml:"ows:WGS84BoundingBox" yaml:"wgs84boundingbox"`
	MetadataURL      struct {
		Href string `xml:"xlink:href,attr" yaml:"href"`
	} `xml:"MetadataURL" yaml:"metadataurl"`
}

FeatureType struct for the WFS 2.0.0

type FeatureTypeList

type FeatureTypeList struct {
	XMLName     xml.Name      `xml:"FeatureTypeList"`
	FeatureType []FeatureType `xml:"FeatureType" yaml:"featuretype"`
}

FeatureTypeList struct for the WFS 2.0.0

type Filter

type Filter struct {
	AND        *AND         `xml:"AND" yaml:"and"`
	OR         *OR          `xml:"OR" yaml:"or"`
	NOT        *NOT         `xml:"NOT" yaml:"not"`
	ResourceID *ResourceIDs `xml:"ResourceId" yaml:"resourceid"`
	ComparisonOperator
	SpatialOperator
}

Filter struct for Query

func (*Filter) BuildQueryString

func (f *Filter) BuildQueryString() url.Values

BuildQueryString for Filter struct

type FilterCapabilities

type FilterCapabilities struct {
	Conformance struct {
		Constraint []struct {
			Name         string `xml:"name,attr" yaml:"name"`
			NoValues     string `xml:"ows:NoValues" yaml:"novalues"`
			DefaultValue string `xml:"ows:DefaultValue" yaml:"defaultvalue"`
		} `xml:"fes:Constraint" yaml:"constraint"`
	} `xml:"fes:Conformance" yaml:"conformance"`
	IDCapabilities struct {
		ResourceIdentifier struct {
			Name string `xml:"name,attr" yaml:"name"`
		} `xml:"fes:ResourceIdentifier" yaml:"resourceidentifier"`
	} `xml:"fes:Id_Capabilities" yaml:"idcapabilities"`
	ScalarCapabilities struct {
		LogicalOperators    string `xml:"fes:LogicalOperators" yaml:"logicaloperators"`
		ComparisonOperators struct {
			ComparisonOperator []struct {
				Name string `xml:"name,attr"`
			} `xml:"fes:ComparisonOperator" yaml:"comparisonoperator"`
		} `xml:"fes:ComparisonOperators" yaml:"comparisonoperators"`
	} `xml:"fes:Scalar_Capabilities" yaml:"scalarcapabilities"`
	SpatialCapabilities struct {
		GeometryOperands struct {
			GeometryOperand []struct {
				Name string `xml:"name,attr"`
			} `xml:"fes:GeometryOperand"`
		} `xml:"fes:GeometryOperands"`
		SpatialOperators struct {
			SpatialOperator []struct {
				Name string `xml:"name,attr"`
			} `xml:"fes:SpatialOperator"`
		} `xml:"fes:SpatialOperators"`
	} `xml:"fes:Spatial_Capabilities"`
	// NO TemporalCapabilities!!!
	TemporalCapabilities *TemporalCapabilities `xml:"fes:Temporal_Capabilities" yaml:"temporalcapabilities"`
}

FilterCapabilities struct for the WFS 2.0.0

type GEOBBOX

type GEOBBOX struct {
	Units          *string  `xml:"unit,attr" yaml:"unit"` // unit or units..
	SrsName        *string  `xml:"srsName,attr" yaml:"srsname"`
	ValueReference *string  `xml:"ValueReference" yaml:"valuereference"`
	Envelope       Envelope `xml:"Envelope" yaml:"envelope"`
}

GEOBBOX for SpatialOperator

func (*GEOBBOX) MarshalText

func (gb *GEOBBOX) MarshalText() string

MarshalText build a Parameter Value string of a GEOBBOX object

type Geometry

type Geometry struct {
	SrsName string `xml:"srsName,attr" yaml:"srsname"`
	Content string `xml:",innerxml"`
}

Geometry struct for GeometryOperand geometries

type GeometryOperand

type GeometryOperand struct {
	Point           *Point           `xml:"Point" yaml:"point"`
	MultiPoint      *MultiPoint      `xml:"MultiPoint" yaml:"multipoint"`
	LineString      *LineString      `xml:"LineString" yaml:"linestring"`
	MultiLineString *MultiLineString `xml:"MultiLineString" yaml:"multiLinestring"`
	Curve           *Curve           `xml:"Curve" yaml:"curve"`
	MultiCurve      *MultiCurve      `xml:"MultiCurve" yaml:"multicurve"`
	Polygon         *Polygon         `xml:"Polygon" yaml:"polygon"`
	MultiPolygon    *MultiPolygon    `xml:"MultiPolygon" yaml:"multipolygon"`
	Surface         *Surface         `xml:"Surface" yaml:"surface"`
	MultiSurface    *MultiSurface    `xml:"MultiSurface" yaml:"multisurface"`
	Box             *Box             `xml:"Box" yaml:"box"`
	Envelope        *Envelope        `xml:"Envelope" yaml:"envelope"`
}

GeometryOperand struct for Filter

type GetCapabilitiesRequest added in v0.2.0

type GetCapabilitiesRequest struct {
	XMLName xml.Name           `xml:"GetCapabilities" yaml:"getcapabilities"`
	Service string             `xml:"service,attr" yaml:"service"`
	Version string             `xml:"version,attr" yaml:"version"`
	Attr    utils.XMLAttribute `xml:",attr"`
}

GetCapabilitiesRequest struct with the needed parameters/attributes needed for making a GetCapabilities request

func (*GetCapabilitiesRequest) ParseQueryParameters added in v0.2.0

func (g *GetCapabilitiesRequest) ParseQueryParameters(query url.Values) []wsc110.Exception

ParseQueryParameters builds a GetCapabilities object based on the available query parameters

func (*GetCapabilitiesRequest) ParseXML added in v0.2.0

func (g *GetCapabilitiesRequest) ParseXML(doc []byte) []wsc110.Exception

ParseXML builds a GetCapabilities object based on a XML document

func (GetCapabilitiesRequest) ToQueryParameters added in v0.2.0

func (g GetCapabilitiesRequest) ToQueryParameters() url.Values

ToQueryParameters builds a new query string that will be proxied

func (GetCapabilitiesRequest) ToXML added in v0.2.0

func (g GetCapabilitiesRequest) ToXML() []byte

ToXML builds a 'new' XML document 'based' on the 'original' XML document

func (GetCapabilitiesRequest) Type added in v0.2.0

func (g GetCapabilitiesRequest) Type() string

Type returns GetCapabilities

func (GetCapabilitiesRequest) Validate added in v0.2.0

Validate returns GetCapabilities

type GetCapabilitiesResponse added in v0.2.0

type GetCapabilitiesResponse struct {
	XMLName               xml.Name `xml:"WFS_Capabilities"`
	Namespaces            `yaml:"namespaces"`
	ServiceIdentification ServiceIdentification `xml:"ows:ServiceIdentification" yaml:"serviceidentification"`
	ServiceProvider       ServiceProvider       `xml:"ows:ServiceProvider" yaml:"serviceprovider"`
	Capabilities
}

GetCapabilitiesResponse base struct

func (*GetCapabilitiesResponse) Service added in v0.2.0

func (gc *GetCapabilitiesResponse) Service() string

Service function needed for the interface

func (GetCapabilitiesResponse) ToXML added in v0.2.2

func (gc GetCapabilitiesResponse) ToXML() []byte

ToXML builds a GetCapabilities response object

func (*GetCapabilitiesResponse) Type added in v0.2.0

func (gc *GetCapabilitiesResponse) Type() string

Type function needed for the interface

func (*GetCapabilitiesResponse) Validate added in v0.2.0

func (gc *GetCapabilitiesResponse) Validate() []wsc110.Exception

Validate function of the wfs200 spec

func (*GetCapabilitiesResponse) Version added in v0.2.0

func (gc *GetCapabilitiesResponse) Version() string

Version function needed for the interface

type GetFeatureRequest added in v0.2.0

type GetFeatureRequest struct {
	XMLName xml.Name `xml:"GetFeature" yaml:"getfeature"`
	BaseRequest
	StandardPresentationParameters
	*StandardResolveParameters
	Query Query `xml:"Query" yaml:"query"`
}

GetFeatureRequest struct with the needed parameters/attributes needed for making a GetFeature request

func (*GetFeatureRequest) ParseQueryParameters added in v0.2.0

func (f *GetFeatureRequest) ParseQueryParameters(query url.Values) []wsc110.Exception

ParseQueryParameters builds a GetCapabilities object based on the available query parameters All the keys from the query url.Values need to be UpperCase, this is done during the execution of the operations.ValidRequest()

func (*GetFeatureRequest) ParseXML added in v0.2.0

func (f *GetFeatureRequest) ParseXML(doc []byte) []wsc110.Exception

ParseXML builds a GetCapabilities object based on a XML document

func (GetFeatureRequest) ToQueryParameters added in v0.2.0

func (f GetFeatureRequest) ToQueryParameters() url.Values

ToQueryParameters builds a new query string that will be proxied

func (GetFeatureRequest) ToXML added in v0.2.0

func (f GetFeatureRequest) ToXML() []byte

ToXML builds a 'new' XML document 'based' on the 'original' XML document TODO: In the Filter>Query>... the content of the GeometryOperand (Point,Line,Polygon,...) is the raw xml (text)

func (GetFeatureRequest) Type added in v0.2.0

func (f GetFeatureRequest) Type() string

Type returns GetFeature

func (GetFeatureRequest) Validate added in v0.2.0

Validate returns GetFeature

type Intersects

type Intersects struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Intersects for SpatialOperator

type LineString

type LineString struct {
	Geometry
}

LineString struct for GeometryOperand

type Method

type Method struct {
	Type string `xml:"xlink:type,attr" yaml:"type"`
	Href string `xml:"xlink:href,attr" yaml:"href"`
}

Method in separated struct so to use it as a Pointer

type MultiCurve

type MultiCurve struct {
	Geometry
}

MultiCurve struct for GeometryOperand

type MultiLineString

type MultiLineString struct {
	Geometry
}

MultiLineString struct for GeometryOperand

type MultiPoint

type MultiPoint struct {
	Geometry
}

MultiPoint struct for GeometryOperand

type MultiPolygon

type MultiPolygon struct {
	Geometry
}

MultiPolygon struct for GeometryOperand

type MultiSurface

type MultiSurface struct {
	Geometry
}

MultiSurface struct for GeometryOperand

type NOT

type NOT struct {
	AND *AND `xml:"AND" yaml:"and"`
	OR  *OR  `xml:"OR" yaml:"or"`
	NOT *NOT `xml:"NOT" yaml:"not"`
	ComparisonOperator
	SpatialOperator
}

NOT struct for Filter

type Namespaces

type Namespaces struct {
	XmlnsGML           string `xml:"xmlns:gml,attr" yaml:"gml"`                                          //http://www.opengis.net/gml/3.2
	XmlnsWFS           string `xml:"xmlns,attr" yaml:"wfs"`                                              //http://www.opengis.net/wfs/2.0
	XmlnsOWS           string `xml:"xmlns:ows,attr" yaml:"common"`                                       //http://www.opengis.net/ows/1.1
	XmlnsXlink         string `xml:"xmlns:xlink,attr" yaml:"xlink"`                                      //http://www.w3.org/1999/xlink
	XmlnsXSI           string `xml:"xmlns:xsi,attr" yaml:"xsi"`                                          //http://www.w3.org/2001/XMLSchema-instance
	XmlnsFes           string `xml:"xmlns:fes,attr" yaml:"fes"`                                          //http://www.opengis.net/fes/2.0
	XmlnsInspireCommon string `xml:"xmlns:inspire_common,attr,omitempty" yaml:"inspirecommon,omitempty"` //http://inspire.ec.europa.eu/schemas/common/1.0
	XmlnsInspireDls    string `xml:"xmlns:inspire_dls,attr,omitempty" yaml:"inspiredls,omitempty"`       //http://inspire.ec.europa.eu/schemas/inspire_dls/1.0
	XmlnsPrefix        string `xml:"xmlns:{{.Prefix}},attr" yaml:"prefix"`                               //namespace_uri placeholder
	Version            string `xml:"version,attr" yaml:"version"`
	SchemaLocation     string `xml:"xsi:schemaLocation,attr" yaml:"schemalocation"`
}

Namespaces struct containing the namespaces needed for the XML document

type OR

type OR struct {
	AND *AND `xml:"AND" yaml:"and"`
	OR  *OR  `xml:"OR" yaml:"or"`
	NOT *NOT `xml:"NOT" yaml:"not"`
	ComparisonOperator
	SpatialOperator
}

OR struct for Filter

type Operation

type Operation struct {
	Name string `xml:"name,attr"`
	DCP  struct {
		HTTP struct {
			Get  *Method `xml:"ows:Get,omitempty" yaml:"get,omitempty"`
			Post *Method `xml:"ows:Post,omitempty" yaml:"post,omitempty"`
		} `xml:"ows:HTTP" yaml:"http"`
	} `xml:"ows:DCP" yaml:"dcp"`
	Parameter []struct {
		Name          string `xml:"name,attr"`
		AllowedValues struct {
			Value []string `xml:"ows:Value"`
		} `xml:"ows:AllowedValues"`
	} `xml:"ows:Parameter"`
	Constraints []struct {
		Name         string `xml:"name,attr" yaml:"name"`
		NoValues     string `xml:"ows:NoValues" yaml:"novalues"`
		DefaultValue string `xml:"ows:DefaultValue" yaml:"defaultvalue"`
	} `xml:"ows:Constraint" yaml:"constraint"`
}

Operation struct for the WFS 2.0.0

type OperationsMetadata

type OperationsMetadata struct {
	XMLName   xml.Name    `xml:"ows:OperationsMetadata"`
	Operation []Operation `xml:"ows:Operation"`
	Parameter struct {
		Name          string         `xml:"name,attr" yaml:"name"`
		AllowedValues *AllowedValues `xml:"ows:AllowedValues" yaml:"allowedvalues"`
	} `xml:"ows:Parameter" yaml:"parameter"`
	Constraint           []Constraint          `xml:"ows:Constraint" yaml:"constraint"`
	ExtendedCapabilities *ExtendedCapabilities `xml:"ows:ExtendedCapabilities" yaml:"extendedcapabilities"`
}

OperationsMetadata struct for the WFS 2.0.0

type Overlaps

type Overlaps struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Overlaps for SpatialOperator

type Point

type Point struct {
	Geometry
}

Point struct for GeometryOperand

type Polygon

type Polygon struct {
	Geometry
}

Polygon struct for GeometryOperand

type ProjectionClause

type ProjectionClause struct {
	Propertyname string
}

ProjectionClause based on Table 9 WFS2.0.0 spec

type PropertyIsBetween

type PropertyIsBetween struct {
	PropertyName  string `xml:"PropertyName" yaml:"propertyname"`
	LowerBoundary string `xml:"LowerBoundary" yaml:"lowerboundary"`
	UpperBoundary string `xml:"UpperBoundary" yaml:"upperboundary"`
}

PropertyIsBetween for ComparisonOperator

type PropertyIsEqualTo

type PropertyIsEqualTo struct {
	ComparisonOperatorAttribute
}

PropertyIsEqualTo for ComparisonOperator

type PropertyIsGreaterThan

type PropertyIsGreaterThan struct {
	ComparisonOperatorAttribute
}

PropertyIsGreaterThan for ComparisonOperator

type PropertyIsGreaterThanOrEqualTo

type PropertyIsGreaterThanOrEqualTo struct {
	ComparisonOperatorAttribute
}

PropertyIsGreaterThanOrEqualTo for ComparisonOperator

type PropertyIsLessThan

type PropertyIsLessThan struct {
	ComparisonOperatorAttribute
}

PropertyIsLessThan for ComparisonOperator

type PropertyIsLessThanOrEqualTo

type PropertyIsLessThanOrEqualTo struct {
	ComparisonOperatorAttribute
}

PropertyIsLessThanOrEqualTo for ComparisonOperator

type PropertyIsLike

type PropertyIsLike struct {
	Wildcard   string `xml:"wildcard,attr" yaml:"wildcard"`
	SingleChar string `xml:"singleChar,attr" yaml:"singlechar"`
	Escape     string `xml:"escape,attr" yaml:"escape"`
	ComparisonOperatorAttribute
}

PropertyIsLike for ComparisonOperator wildcard='*' singleChar='.' escape='!'>

type PropertyIsNotEqualTo

type PropertyIsNotEqualTo struct {
	ComparisonOperatorAttribute
}

PropertyIsNotEqualTo for ComparisonOperator

type Query

type Query struct {
	TypeNames    string    `xml:"typeNames,attr" yaml:"typenames"`
	SrsName      *string   `xml:"srsName,attr" yaml:"srsname"`
	Filter       *Filter   `xml:"Filter" yaml:"filter"`
	SortBy       *SortBy   `xml:"SortBy" yaml:"sortby"`
	PropertyName *[]string `xml:"PropertyName" yaml:"propertyname"`
}

Query struct for parsing the WFS filter xml

func (*Query) BuildQueryString

func (q *Query) BuildQueryString() url.Values

BuildQueryString for Query struct

type ResourceID

type ResourceID struct {
	Rid string `xml:"rid,attr" yaml:"rid"`
}

ResourceID struct for Filter

type ResourceIDs added in v0.2.2

type ResourceIDs []ResourceID

ResourceIDs struct used in the Filter one of the three filter options that are mutually exclusive

type Schema added in v0.2.0

type Schema struct {
	XMLName                     xml.Name `xml:"schema"`
	Text                        string   `xml:",chardata"`
	Xsd                         string   `xml:"xsd,attr"`
	Digitaaltopografischbestand string   `xml:"digitaaltopografischbestand,attr"`
	Gml                         string   `xml:"gml,attr"`
	Wfs                         string   `xml:"wfs,attr"`
	ElementFormDefault          string   `xml:"elementFormDefault,attr"`
	TargetNamespace             string   `xml:"targetNamespace,attr"`
	Import                      struct {
		Text           string `xml:",chardata"`
		Namespace      string `xml:"namespace,attr"`
		SchemaLocation string `xml:"schemaLocation,attr"`
	} `xml:"import"`
	ComplexType []struct {
		Text           string `xml:",chardata"`
		Name           string `xml:"name,attr"`
		ComplexContent struct {
			Text      string `xml:",chardata"`
			Extension struct {
				Text     string `xml:",chardata"`
				Base     string `xml:"base,attr"`
				Sequence struct {
					Text    string `xml:",chardata"`
					Element []struct {
						Text      string `xml:",chardata"`
						MaxOccurs string `xml:"maxOccurs,attr"`
						MinOccurs string `xml:"minOccurs,attr"`
						Name      string `xml:"name,attr"`
						Nillable  string `xml:"nillable,attr"`
						Type      string `xml:"type,attr"`
					} `xml:"element"`
				} `xml:"sequence"`
			} `xml:"extension"`
		} `xml:"complexContent"`
	} `xml:"complexType"`
	Element []struct {
		Text              string `xml:",chardata"`
		Name              string `xml:"name,attr"`
		SubstitutionGroup string `xml:"substitutionGroup,attr"`
		Type              string `xml:"type,attr"`
	} `xml:"element"`
}

Schema struct TODO build struct based on the capabilities and additional featureinfo

type ServiceIdentification

type ServiceIdentification struct {
	XMLName     xml.Name         `xml:"ows:ServiceIdentification"`
	Title       string           `xml:"ows:Title" yaml:"title"`
	Abstract    string           `xml:"ows:Abstract" yaml:"abstract"`
	Keywords    *wsc110.Keywords `xml:"ows:Keywords" yaml:"keywords"`
	ServiceType struct {
		Text      string `xml:",chardata" yaml:"text"`
		CodeSpace string `xml:"codeSpace,attr" yaml:"codespace"`
	} `xml:"ows:ServiceType"`
	ServiceTypeVersion string `xml:"ows:ServiceTypeVersion" yaml:"servicetypeversion"`
	Fees               string `xml:"ows:Fees" yaml:"fees"`
	AccessConstraints  string `xml:"ows:AccessConstraints" yaml:"accesscontraints"`
}

ServiceIdentification struct should only be fill by the "template" configuration wfs200.yaml

type ServiceProvider

type ServiceProvider struct {
	XMLName      xml.Name `xml:"ows:ServiceProvider"`
	ProviderName string   `xml:"ows:ProviderName" yaml:"providername"`
	ProviderSite struct {
		Type string `xml:"xlink:type,attr" yaml:"type"`
		Href string `xml:"xlink:href,attr" yaml:"href"`
	} `xml:"ows:ProviderSite" yaml:"providersite"`
	ServiceContact struct {
		IndividualName string `xml:"ows:IndividualName" yaml:"individualname"`
		PositionName   string `xml:"ows:PositionName" yaml:"positionname"`
		ContactInfo    struct {
			Text  string `xml:",chardata"`
			Phone struct {
				Voice     string `xml:"ows:Voice" yaml:"voice"`
				Facsimile string `xml:"ows:Facsimile" yaml:"facsmile"`
			} `xml:"ows:Phone" yaml:"phone"`
			Address struct {
				DeliveryPoint         string `xml:"ows:DeliveryPoint" yaml:"deliverypoint"`
				City                  string `xml:"ows:City" yaml:"city"`
				AdministrativeArea    string `xml:"ows:AdministrativeArea" yaml:"administrativearea"`
				PostalCode            string `xml:"ows:PostalCode" yaml:"postalcode"`
				Country               string `xml:"ows:Country" yaml:"country"`
				ElectronicMailAddress string `xml:"ows:ElectronicMailAddress" yaml:"electronicmailaddress"`
			} `xml:"ows:Address" yaml:"address"`
			OnlineResource struct {
				Type string `xml:"xlink:type,attr" yaml:"type"`
				Href string `xml:"xlink:href,attr" yaml:"href"`
			} `xml:"ows:OnlineResource" yaml:"onlineresource"`
			HoursOfService      string `xml:"ows:HoursOfService" yaml:"hoursofservice"`
			ContactInstructions string `xml:"ows:ContactInstructions" yaml:"contactinstructions"`
		} `xml:"ows:ContactInfo" yaml:"contactinfo"`
		Role string `xml:"ows:Role" yaml:"role"`
	} `xml:"ows:ServiceContact" yaml:"servicecontact"`
}

ServiceProvider struct containing the provider/organization information should only be fill by the "template" configuration wfs200.yaml

type SortBy

type SortBy struct {
	SortProperty []SortProperty `xml:"SortProperty" yaml:"sortproperty"`
}

SortBy for Query

type SortProperty

type SortProperty struct {
	ValueReference string  `xml:"ValueReference" yaml:"valuereference"`
	SortOrder      *string `xml:"SortOrder" yaml:"sortorder"` // ASC,DESC
}

SortProperty for SortBy

type SpatialOperator

type SpatialOperator struct {
	Equals     *Equals     `xml:"Equals" yaml:"equals"`
	Disjoint   *Disjoint   `xml:"Disjoint" yaml:"disjoint"`
	Touches    *Touches    `xml:"Touches" yaml:"touches"`
	Within     *Within     `xml:"Within" yaml:"within"`
	Overlaps   *Overlaps   `xml:"Overlaps" yaml:"overlaps"`
	Crosses    *Crosses    `xml:"Crosses" yaml:"crosses"`
	Intersects *Intersects `xml:"Intersects" yaml:"intersects"`
	Contains   *Contains   `xml:"Contains" yaml:"contains"`
	DWithin    *DWithin    `xml:"DWithin" yaml:"dwithin"`
	Beyond     *Beyond     `xml:"Beyond" yaml:"beyond"`
	BBOX       *GEOBBOX    `xml:"BBOX" yaml:"bbox"`
}

SpatialOperator struct for Filter

type StandardPresentationParameters added in v0.2.0

type StandardPresentationParameters struct {
	ResultType   *string `xml:"resultType,attr,omitempty" yaml:"resulttype"`     // enum: "results" or "hits"
	OutputFormat *string `xml:"outputFormat,attr,omitempty" yaml:"outputformat"` // default "application/gml+xml; version=3.2"
	Count        *int    `xml:"count,attr,omitempty" yaml:"count"`
	Startindex   *int    `xml:"startindex,attr,omitempty" yaml:"startindex"` // default 0
}

StandardPresentationParameters struct used by GetFeature

type StandardResolveParameters added in v0.2.0

type StandardResolveParameters struct {
	Resolve        *string `xml:"Resolve,omitempty" yaml:"resolve"` //can be one of: local, remote, all, none
	ResolveDepth   *int    `xml:"ResolveDepth,omitempty" yaml:"resolvedepth"`
	ResolveTimeout *int    `xml:"ResolveTimeout,omitempty" yaml:"resolvetimeout"`
}

StandardResolveParameters struct used by GetFeature contains the resolve information of a GetFeauter request

type StoredQuery

type StoredQuery struct {
	StoredQueryID string
}

StoredQuery based on Table 10 WFS2.0.0 spec

type Surface

type Surface struct {
	Geometry
}

Surface struct for GeometryOperand

type TemporalCapabilities

type TemporalCapabilities struct {
	TemporalOperands struct {
		TemporalOperand []struct {
			Name string `xml:"name,attr" yaml:"name"`
		} `xml:"fes:TemporalOperand" yaml:"temporaloperand"`
	} `xml:"fes:TemporalOperands" yaml:"temporaloperands"`
	TemporalOperators struct {
		TemporalOperator []struct {
			Name string `xml:"name,attr,omitempty" yaml:"name,omitempty"`
		} `xml:"fes:TemporalOperator" yaml:"temporaloperator"`
	} `xml:"fes:TemporalOperators" yaml:"temporaloperators"`
}

TemporalCapabilities define but not used

type Touches

type Touches struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Touches for SpatialOperator

type Within

type Within struct {
	PropertyName string `xml:"PropertyName" yaml:"propertyname"`
	GeometryOperand
}

Within for SpatialOperator

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL