Hi all, i have have problem with missing "duplicated" elements in the wfs
output.

I am using postgres db, where I have table "ServiceName" ("ServiceId" uuid,
"LanguageCode" text, "Name" text);

with data:
e4217f80-90b2-45db-b5fe-c0b604449871    cz      service name 1
e4217f80-90b2-45db-b5fe-c0b604449871    en      service name 1
e4217f80-90b2-45db-b5fe-c0b604449871    de      service name 1 in de
3c5296ef-60a4-46bc-afcb-c8248ca522ea    cz      service name 2
3c5296ef-60a4-46bc-afcb-c8248ca522ea    en      service name 2
3c5296ef-60a4-46bc-afcb-c8248ca522ea    de      service name 2
de657585-ac43-4a8e-b7e2-409e108f148b    cz      service name 3 in cz
de657585-ac43-4a8e-b7e2-409e108f148b    en      service name 3 in en
de657585-ac43-4a8e-b7e2-409e108f148b    de      service name 3 in de

As you can see, for the service with id 3c5296ef-60a4-46bc-afcb-c8248ca522ea
the "name" value is the same for all the languages (value "service name 2").

I have created layer "serviceNames" via app-schema. So, i have:

definition of languageNameType (xsd):

<xsd:complexType name="LanguageNameType">
  <xsd:sequence>
    <xsd:element name="name" type="lge:LanguagePropertyType" minOccurs="1"
maxOccurs="unbounded"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="LanguagePropertyType">
  <xsd:simpleContent>
    <xsd:extension base="xsd:string">
          <xsd:attribute type="xsd:string" name="languageCode"/>
        </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

definition of serviceName element:

<xsd:include schemaLocation="languageNameType.xsd" />
<xsd:element name="serviceName" type="lge:LanguageNameType" />

in definition of data store i have:


<AttributeMapping>
  <targetAttribute>lge:serviceName</targetAttribute>
  <idExpression><OCQL>ServiceId</OCQL></idExpression>
</AttributeMapping>


<AttributeMapping>
  <targetAttribute>lge:name</targetAttribute>
    <sourceExpression>
      <OCQL>Name</OCQL>
    </sourceExpression>
    <ClientProperty>
      <name>languageCode</name>
      <value>LanguageCode</value>
    </ClientProperty>
    <isMultiple>true</isMultiple>
</AttributeMapping>


<AttributeMapping>
  <targetAttribute>FEATURE_LINK</targetAttribute>
    <sourceExpression>
          <OCQL>ServiceId</OCQL>
        </sourceExpression>
</AttributeMapping>

When i call wfs request for layer serviceName, in the output is:

<lge:serviceName gml:id="3c5296ef-60a4-46bc-afcb-c8248ca522ea">
  <lge:name languageCode="en">service name 2</lge:name>
</lge:serviceName>

but i need to see names for all languages (even if name is the same), so i
need:

<lge:serviceNames gml:id="3c5296ef-60a4-46bc-afcb-c8248ca522ea">
    <lge:name languageCode="cz">service name 2</lge:name>
    <lge:name languageCode="en">service name 2</lge:name>
    <lge:name languageCode="de">service name 2</lge:name>
</lge:serviceNames>
        
        
Is there any way how to achieve this?

Many thanks for any advice.
Lange




--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to