Tested on 2.12-beta because this issue https://osgeo-org.atlassian.net/browse/GEOS-4773 appear to be solved in this version, but null namespace prefixes are still present in virtual services for complex features and on some other WFS requests. The null namespace prefixes for virtual services were solved only for simple features, but not for complex features (see bug 3 in the list). Three bugs were listed, because the null namespaces on complex features can have the same cause.
1. A GetPropertyValue request to retrieve from a complex feature type (based on multiple XSD files and therefore stored in multiple workspaces) the value of a property that is found in another workspace than the root of the complex feature type.
In order to implement INSPIRE, a protected site complex feature type is based on three XSD schemas, namely ps.XSD (protected site), base.XSD (it includes the inspireId) and gn.XSD (geographical name), therefore three workspaces are created from one complex feature type: ps, base and gn.
If a user wants to retrieve the inspireIds or the geographical names of all or some protected sites, unfortunately the GetPropertyValue request returns null namespace prefixes.
Links to test nulls:
To be noted that a GetPropertyValue request does not return null namespace prefixes for the first nested element:
but it returns null namespace prefixes for the second, third, .. nested element:
However, a GetFeature request is not providing null namespace prefixes for that complex feature
Other software is not returning null namespace prefixes in GetPropertyValue requests, therefore there is not a WFS request issue.
2. A GetFeature request in order to retrieve a dataset trough a Stored Querry is providing null namespace prefixes while retrieving a dataset with multiple featureTypes.
In practice a dataset contains more than one featureType from multiple INSPIRE data themes, all having the same metadata and having the geometries in topology, being produced at the same precision and having the same lineage.
In this example the dataset contains protected sites (ps), administrative units (au), bio-geographical regions (br) and their corresponding geographical names (gn), for all these being created five so called workspaces: ps, au, br, gn and base.
A GetFeature request in order to retrieve this dataset trough a Stored Querry is returning null namespaces.
Link to test nulls:
Other software is not returning null namespace prefixes, therefore there is not an WFS request issue.
3. A GetFeature request to a virtual service (in this case "ps") are returning null namespace prefixes.
Link to test nulls:
Other software is able to create separate endpoints per each dataset even if the dataset has more than one complex featureType.