Hi, thanks a lot for reply ..
 
Would you please be so kind and show/explain me how to change the schemas?
Just now, i have mappings like this:
 
mapping file ct_email.xml takes data from table "Emails" and contains definition of FEATURE_LINK:
..
<so
urceDataStore>datastore</sourceDataStore>
<sourceType>Email</sourceType>
<targetElement>ct:Email</targetElement>
...

<AttributeMapping>
  <targetAttribute>FEATURE_LINK</targetAttribute>
     <sourceExpression>
       <OCQL>PersonId</OCQL>
     </sourceExpression>
</AttributeMapping>
 
The same approach I have for web.
 
In mapping for person, I include both ct_email.xml and ct_web.xml, and define mapping like:
 
<sourceDataStore>datastore</sourceDataStore>
<sourceType>Person</sourceType>
<targetElement>ct:Person</targetElement>
...
<AttributeMapping>
  <targetAttribute>Email</targetAttribute>
  <sourceExpression>
    <OCQL>Id</OCQL>
      <linkElement>ct:Email</linkElement>
        <linkField>FEATURE_LINK</linkField>
    </sourceExpression>
</AttributeMapping>
<AttributeMapping>
    <targetAttribute>Web</targetAttribute>
    <sourceExpression>
      <OCQL>Id</OCQL>
        <linkElement>ct:Web</linkElement>
        <linkField>FEATURE_LINK</linkField>
    </sourceExpression>
</AttributeMapping>
 
In case, i would like to add ContactInfoProperty, do i need to create extra mapping file(s) (eg. ct_contactInfoProperty.xml),
which contains mapping of emails and webs? What would be datastore in this case?
 
And how should I link Person -> ContactInfoProperty -> ContactInfo -> Emails/WebPages?
 
I have tables/viewsw for person, email and web in postgre db, and there is link via person.Id -> email.PersonId, web.PersonId.
Do i need something similar for ContactInfoProperty/ContactInfo also?
 
Or is it set just in schema files?
 
Thanks for any advice,
Tomas
 
 
Sent: Tuesday, October 31, 2017 at 4:20 PM
From: "Gavin Medley" <med...@unavco.org>
To: "Tomas L." <ges...@email.com>
Cc: "Ben Caradoc-Davies" <b...@transient.nz>, geoserver-users <geoserver-users@lists.sourceforge.net>
Subject: Re: [Geoserver-users] WFS nesting

Hi Tomas,

As Ben alluded to, I think you should first make sure that your goal is GML compliant. That means it follows the Object-Property-Value model (or GML striping rule). That is, GML compliant XML always consists of an Object, which contains Properties. An object may have 0 to n properties “nested” on the same level, like so:

<Object>
  <Property1></Property1>
  <Property2></Property2>
  ...
</Object>

Each property must contain at most 1 value in GML. I believe this is where your schema may violate the model. The value of a property may be simple, e.g. <Property1>foovalue</Property1> or the value may itself be an object, like:

...
  <Property1>
    <NestedObjectAsValue>
      <NestedProperty1></NestedProperty1>
      ...
    </NestedObjectAsValue>
  </Property1>
...

In your context, <Person> would be an object and <ContactInfo> would be a property (potentially one of many). However, that property cannot contain <Emails> and <Web> as values (objects) since a property may only have a single value. One way around this could be to skip the <ContactInfo> property and use <Emails> and <Web> as properties of <Person>. Another would be to create a <contactInfoProperty> element so that your output would look like:

<Person> <!--Object-->
  <contactInfoProperty> <!--Property-->
    <ContactInfo> <!--Value (Object)-->
      <Emails></Emails> <!--Property-->
      <Web></Web> <!--Property-->
    </ContactInfo>
  </contactInfoProperty> 
</Person>

Any solution will require changing your schema to be GML compliant since that is the root of the problem.

HTH

-Gavin

 
On Tue, Oct 31, 2017 at 4:48 AM, Tomas L. <ges...@email.com> wrote:
Hi, thanks for reply. Im so sorry, but i do not understand, what exactly you mean.
How i wrote in my first question, im able to chain features exactly as you described:
 
<featureMember>
<Person>
<email>
<Email>content for email 1</Email>
</email>
<email>
<Email>content for email 2</Email>
</email>
[...]
 
I attached all my files as a ZIP, so you can see the output in "___output.xml".
 
But i would like to "nest" emails/webs to special elements, so the output should be like this:
 
<featureMember>
<Person>
   .. person info
  <ContactInfo> <- .... one more "nested" element
    <Emails> <- .... another "nested" element
      <Email>
        ... email 1
      </Email>
    </Emails>
    <WebPages> <- ... another "nested"" element
      <Web>
        .... web 1
      </Web>
    </WebPages>
  </ContactInfo>
..
</featureMember>

I suppose it could be set in schema (xsd) files somehow, but i do not know how exactly it should be done.
So i would really appreciate any help.
Thanks a lot,
Tomas
 
 
Sent: Monday, October 30, 2017 at 9:24 PM
From: "Ben Caradoc-Davies" <b...@transient.nz>
To: "Tomas L." <ges...@email.com>
Cc: "Nuno Oliveira" <nuno.olive...@geo-solutions.it>, geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] WFS nesting
Tomas,

for app-schema feature chaining to work properly, your XML schema must
conform to the GML object/property model ("striping"). The encoded XML
will be TypeName/propertyName/TypeName/propertyName/... . For example,
with a multivalued "email" property:

<featureMember>
<Person>
<email>
<Email>content for email 1</Email>
</email>
<email>
<Email>content for email 2</Email>
</email>
[...]

This is required by GML. The pattern is as for GeometryPropertyType and
similar. The reason is that this allows naming of properties and
encoding of their concrete type (polymorphism). If your schema follows
these rules, you will be able to use feature chaining to encode
multivalued properties.

Kind regards,
Ben.

On 30/10/17 23:50, Tomas L. wrote:
> Thanks for answer. I know about app schema, im using it. Im able to join
> elements through FEATURE_LINK, but have no luck with nesting of joined elements.
> BR,
> Tomas.
> *Sent:* Monday, October 30, 2017 at 10:54 AM
> *From:* "Nuno Oliveira" <nuno.olive...@geo-solutions.it>
> *To:* geoserver-users@lists.sourceforge.net
> *Subject:* Re: [Geoserver-users] WFS nesting
> Hi,
>
> The only way I know of achieving this in GeoServer is using App-Schema:
> http://docs.geoserver.org/stable/en/user/data/app-schema/index.html
>
> This extension will allow you mappings between your database and a specific GML
> based XML schema.
>
> Note that App-Schema is an extension to GeoServer and needs to be downloaded and
> installed:
> http://geoserver.org/release/stable/
>
> Regards,
>
> Nuno Oliveira
>
> On 10/29/2017 11:36 PM, geseus wrote:
> > files.zip <http://osgeo-org.1560.x6.nabble.com/file/t381976/files.zip>
> >
> > Hi,
> >
> > I'm trying to do wfs with nested elements, but without success.
> > I have 3 postgres tables: person, email, web.
> > I'm able to join them, so output is like:
> >
> > <featureMember>
> > <Person>
> > .. person elements
> >
> > email 1 elements
> >
> >
> > email 2 elements
> >
> > ..
> > <Web>
> > web 1 elements
> > </Web>
> > <Web>
> > web 2 elements
> > </Web>
> >
> > ...
> >
> > But I would like to have web and email info nested like this:
> > <featureMember>
> > <Person>
> > .. person elements
> >
> >>>> HOW TO ADD THIS ELEMENT?
> > <ContactInfo>
> >
> >>>> AND THIS ELEMENT?
> > <Emails>
> >
> > email 1 elements
> >
> >
> > email 2 elements
> >
> > </Emails>
> > <WebPages>
> > <Web>
> > web 1 elements
> > </Web>
> > </WebPages>
> >
> > I do not know, how to create schema files and feature_link for that.
> >
> > And another question, i have three xml files, which contain the same
> > datastores with exactly the same connection to database.
> > Is it possible to define connection/datastore otside and include it somehow
> > (so i have connection defined only once).
> > And is it posible to crypt the password like this?
> > <entry key="passwd">crypt1:SNtjcptw+CrnShpSnfw6hPBxUpGhWbIs</entry>
> > (this doesnt work for me)
> >
> > All files im using are (hopefully) attached as a zip.
> > Thanks a lot for any advice.
> > Tomas
> >
> >
> >
> > --
> > Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > 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
> >
> > Geoserver-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/geoserver-users
> >
>
> --
> Regards,
> Nuno Oliveira
> ==
> GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for
> more information.
> ==
>
> Nuno Miguel Carvalho Oliveira
> @nmcoliveira
> Software Engineer
>
> GeoSolutions S.A.S.
> Via di Montramito 3/A
> 55054 Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> -------------------------------------------------------
> AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
> Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i
> file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo
> è consentito esclusivamente al destinatario del messaggio, per le finalità
> indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne
> il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di
> procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro
> sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo
> ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce
> comportamento contrario ai principi dettati dal D.Lgs. 196/2003.
>
> The information in this message and/or attachments, is intended solely for the
> attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act (Legislative
> Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in
> accord with its purpose, any disclosure, reproduction, copying, distribution, or
> either dissemination, either whole or partial, is strictly forbidden except
> previous formal approval of the named addressee(s). If you are not the intended
> recipient, please contact immediately the sender by telephone, fax or e-mail and
> delete the information in this message that has been received in error. The
> sender does not give any warranty or accept liability as the content, accuracy
> or completeness of sent messages and accepts no responsibility for changes made
> after they were sent or for other risks which arise as a result of e-mail
> transmission, viruses, etc.
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> 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
>
> Geoserver-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>
>
>
> _______________________________________________
> 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
>
> Geoserver-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>

--
Ben Caradoc-Davies <b...@transient.nz>
Director
Transient Software Limited <http://transient.nz/>
New Zealand

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
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

Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users
 
 
 
--
Gavin Medley
Software Engineer, UNAVCO
6350 Nautilus Drive
Boulder, CO 80301-5394
Mobile: 505-819-1270
 

Attachment: ct_email.xml
Description: XML document

Attachment: ct_person.xml
Description: XML document

Attachment: ct_web.xml
Description: XML document

Attachment: datastore.xml
Description: XML document

Attachment: source.xsd
Description: XML document

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
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

Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to