Root element of a mappings configuration file. Mappings configuration element type. Defines the mappings sections needed to define the namespaces _used in the config file instance_, the datastores with the source feature types, the schema location for the target feature types and the correspondence between both as mapping elements. Now, say that myns:MyBaseType is abstract and at runtime you want that MyFeatureType instances being assigned an instance of myns2:MyDerivedType, which extends myns:MyBaseType. If you don't specify that situation in the mappings config file, complex datastore will have no way of inferring that, so the way of telling complex datastore to create an instance of myns2:MyDerivedType instead of the one declared in the schema, is by using a myns2:MyDerivedType tag in the attribute mapping (see TypeMappingsPropertyType documentation below). So, for the mappings parser to recognize which type the instance should actually be, you need to declare the namespace here, as well as in the actual xsd schema. ]]> one of the datastore ids defined in the sourceDataStores section the feature type name inside sourceDataStore to be mapped to the community schema the target element type. Note that this has to be an element type and not a feature type. Thus, the referenced element has to be of the desired feature type (for example, xmml:Borehole instead of xmml:BoreHoleType) Borehole/name BGS_ID -------------- Uses a function expression to map the result to the second instance of the name attribute. Also adds a "client property" named "codeSpace" with a fixed value. This leads to an xml attribute at GML encoding time. Borehole/name[2] strConcat(BGS_ID, 'name-#') codeSpace"http://ns.bgs.ac.uk/bgs.ubi.pk" -------------- Tells complex datastore to create an instance of range for each "row" of the same "group" of a joined result for a joined source feature type. No need to set sourceExpression since "range" attribute is complex and thus will have to set the mappings for its childs anyways. NOTE in this case we ommited "Borehole/" on the targetAttribute content. It is intentional, as and it should work both ways, as the filter encoding spec says that the root element name is optional. log/IntervalLog/range true ]]> name of the client property/xml element attribute OGC CQL expression for the attribute value