Ha ha ha!  Thanks for sharing this :)

On 11/17/2016 06:00 PM, Jody Garnett wrote:
Fine:
- https://www.dropbox.com/s/egwue6op3gch4r4/DSC06212.jpg?dl=0
- https://www.dropbox.com/s/zyvfq10k5wygeyu/DSC06213.JPG?dl=0

--
Jody Garnett

On 14 November 2016 at 19:57, Ben Caradoc-Davies <b...@transient.nz <mailto:b...@transient.nz>> wrote:

    Nuno,

    I have no objection to the encoder supporting non-GML encoding
    patterns,
    if the change does not impact complexity or performance. The
    encoder is
    intended to support XSDs other than just GML, hence the module name.
    Before any change is merged, I would like to run the GeoServer
    app-schema online test suite on your pull request.

    Instead of "striping", perhaps terminology that refers to the GML
    "object-property model" for clarity?

    This method is already very long. I once printed the Encoder source in
    six-point and wrapped Justin Deoliveira in it. Jody has the photo.

    Kind regards,
    Ben.

    On 15/11/16 13:52, Nuno Oliveira wrote:
    > Andrea, Stefano Ben and Rob sorry for the delay and thanks for the
    > feedback, much appreciated :)
    >
    > I dived in app-schema and GML complex features encoder code,
    follow the
    > provided mailing list discussions and perform some tests and I got
    > confused about all of this :| ... I redone all of this and found
    some
    > answers and questions :)
    >
    > In my current use case I will actually build a top schema that
    will be
    > GML based but needs to include entities from a schema that is
    not GML
    > based. Answering Ben question the schema is this one:
    > http://www.datex2.eu/schema/2/2_3/DATEXIISchema_2_2_3.xsd
    <http://www.datex2.eu/schema/2/2_3/DATEXIISchema_2_2_3.xsd>
    >
    > App-schema seems to be able to handle the mapping of XSD
    elements that
    > doesn't respect the GML "striping" rule, i.e. it correctly
    builds the
    > complex feature type, the complex feature and seems to handle
    filtering
    > correctly too. So "the problem" was that the GML complex encoder
    was not
    > encoding the elements that didn't respect the "stripping" rule.
    >
    > That said, I would like to relax the GML complex encoder to be
    able to
    > encode complex features that map to a schema that didn't respect
    the GML
    > "stripping" rule.
    >
    > When the GML "stripping" rule is not respected, app-schema will
    build a
    > complex feature where the type will contain a feature of the
    same type.
    > Using the stations example, this means that we will have a
    Measurement
    > containing Measurement elements, this happens because the containing
    > element was a XSD element of type Measurement. The encoder
    expected to
    > receive a MeasurementProperty containing a Measurement, where the
    > containing XSD element was of type MeasurementProperty.
    >
    > The solution I propose is basically to detect when we have a complex
    > feature property the matches the pattern described above and to
    actually
    > encode the contained properties which are the properties we are
    > interested in. Mapping this to code, this would basically happen
    here:
    >
    
https://github.com/nmco/geotools/blob/fc6d8db315240dabad2daf0160316d51c1e33c2f/modules/extension/xsd/xsd-core/src/main/java/org/geotools/xml/Encoder.java#L747
    
<https://github.com/nmco/geotools/blob/fc6d8db315240dabad2daf0160316d51c1e33c2f/modules/extension/xsd/xsd-core/src/main/java/org/geotools/xml/Encoder.java#L747>
    >
    >
    > Instead of just adding the current complex attribute, we could
    check if
    > the current complex attribute is actually a non "striped" GML
    entity and
    > encode only the contained entities:
    >
    > if (isNonSttrippedNestedEntity(next)) {
    >     for (Property property : ((ComplexAttribute)
    next).getProperties()) {
    >         encoded.push(new EncodingEntry(property, element, entry));
    >     }
    > } else {
    >     encoded.push(new EncodingEntry(next, element, entry));
    > }
    >
    >
    > I have performed some tests with this and it seems to work fine.
    I was
    > able to encode the stations data read from a MongoDB store using the
    > original non valid GML schema (result attached).
    >
    > We can also have a flag that will control if the encoder should
    work in
    > a relaxed way or not.
    >
    > What do you think about this solution ? What did I miss ?
    >
    > Regarding Rob comment about the result mime type, what are others
    > opinion on this ?
    >
    > Thanks,
    >
    > Nuno Oliveira
    >
    > On 11/02/2016 02:42 PM, Nuno Oliveira wrote:
    >> Thanks for the feedback Stefano and Andrea.
    >>
    >> So it doesn't matter how I try to map the entities, i.e. the
    >> app-schema mappings, the problem is with the schema :(
    >>
    >> Stefano I tried to find the discussion you refer on the mailing
    lists
    >> but could not find it, better I found to much information
    >> about this, can you pass me the link :)
    >>
    >> You say that you already stepped on something like this how did you
    >> manage to work around it ?
    >>
    >> Thanks,
    >>
    >> Nuno Oliveira
    >>
    >> One doubt remain, and this one is for the app-schema experts :), is
    >> there a
    >>
    >> On 11/02/2016 10:09 AM, Nuno Oliveira wrote:
    >>> Hi,
    >>>
    >>> I have a doubt regarding the way GML complex features encoder
    handles
    >>> a sub collection of features, i.e. chained features.
    >>>
    >>> The example use case is the representation of some meteorological
    >>> stations measurements in GML. The complex feature
    >>> represents a station were the measurements are represented as
    a sub
    >>> collection of features. The XML expected representation
    >>> would be something like this:
    >>>
    >>> <?xml version="1.0" encoding="UTF-8"?>
    >>> <wfs:FeatureCollection ...>
    >>>     <st:featureMember>
    >>>         <st:StationFeature gml:id="1">
    >>>             <st:name>station 1</st:name>
    >>>             <st:contact>
    >>>                 <st:mail>stati...@mail.com
    <mailto:stati...@mail.com></st:mail>
    >>>             </st:contact>
    >>>             <st:measurement>
    >>>  <st:name>temp</st:name>
    >>>  <st:unit>c</st:unit>
    >>>  <st:value>35.5</st:value>
    >>>             </st:measurement>
    >>>             <st:measurement>
    >>>  <st:name>wind</st:name>
    >>>  <st:unit>km/h</st:unit>
    >>>  <st:value>110.5</st:value>
    >>>             </st:measurement>
    >>>             <st:geometry>
    >>>                 <gml:Point
    >>> srsName="http://www.opengis.net/gml/srs/epsg.xml#4326
    <http://www.opengis.net/gml/srs/epsg.xml#4326>">
    >>> <gml:coordinates>50.0,60.0</gml:coordinates>
    >>>                 </gml:Point>
    >>>             </st:geometry>
    >>>         </st:StationFeature>
    >>>     </gml:featureMember>
    >>> </wfs:FeatureCollection>
    >>>
    >>> The first GML based schema I wrote for this didn't work, i.e. the
    >>> measurements sub collection was not encoded by
    >>> the encoder, please find that schema attached with name
    >>> stations1.xsd. After some investigation I found that my
    >>> problem was in this piece of code:
    >>>
    >>>
    
https://github.com/geotools/geotools/blob/master/modules/extension/xsd/xsd-gml3/src/main/java/org/geotools/gml3/bindings/ComplexSupportXSAnyTypeBinding.java#L176-L177
    
<https://github.com/geotools/geotools/blob/master/modules/extension/xsd/xsd-gml3/src/main/java/org/geotools/gml3/bindings/ComplexSupportXSAnyTypeBinding.java#L176-L177>
    >>>
    >>>
    >>> Basically no child elements were extracted, and in this case the
    >>> child elements were the station measurements. After checking
    >>> the app-schema examples I came up with this second schema that
    >>> worked, please find that schema attached with name stations2.xsd.
    >>>
    >>> The main difference is that I wrapped the measurement element with
    >>> the MeasurmentPropertyType:
    >>>
    >>> <xs:complexType name="MeasurementPropertyType">
    >>>   <xs:sequence minOccurs="0">
    >>>     <xs:element ref="st:Measurement"/>
    >>>   </xs:sequence>
    >>>   <xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
    >>> </xs:complexType>
    >>>
    >>> This stations use case is just an example, I have a much more
    complex
    >>> use case with the same problem were I cannot change the schema.
    >>> So I'm wondering, did anyone had a similar use case ? did I made
    >>> something wrong in the app-schema mappings-file ? is this
    something is
    >>> just not supported by the encoder ? and did my first schema
    actually
    >>> makes sense (in my point of view it looks sane) ?
    >>>
    >>> Any help with this will be very very welcomed :)
    >>>
    >>> Regards,
    >>>
    >>> Nuno Oliveira
    >>>
    >>>
    >>>
    >>>
    
------------------------------------------------------------------------------
    >>>
    >>> Developer Access Program for Intel Xeon Phi Processors
    >>> Access to Intel Xeon Phi processor-based developer platforms.
    >>> With one year of Intel Parallel Studio XE.
    >>> Training and support from Colfax.
    >>> Order your platform today.http://sdm.link/xeonphi
    >>>
    >>>
    >>> _______________________________________________
    >>> GeoTools-Devel mailing list
    >>> GeoTools-Devel@lists.sourceforge.net
    <mailto:GeoTools-Devel@lists.sourceforge.net>
    >>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
    <https://lists.sourceforge.net/lists/listinfo/geotools-devel>
    >>
    >> --
    >> ==
    >> GeoServer Professional Services from the experts!
    >> Visithttp://goo.gl/it488V <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 <tel:%2B39%200584%20962313>
    >> fax: +39 0584 1660272 <tel:%2B39%200584%201660272>
    >> mob: +39 333 8128928 <tel:%2B39%20%20333%208128928>
    >>
    >> http://www.geo-solutions.it
    >> http://twitter.com/geosolutions_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.
    >>
    >>
    >>
    
------------------------------------------------------------------------------
    >>
    >> Developer Access Program for Intel Xeon Phi Processors
    >> Access to Intel Xeon Phi processor-based developer platforms.
    >> With one year of Intel Parallel Studio XE.
    >> Training and support from Colfax.
    >> Order your platform today. http://sdm.link/xeonphi
    >>
    >>
    >> _______________________________________________
    >> GeoTools-Devel mailing list
    >> GeoTools-Devel@lists.sourceforge.net
    <mailto:GeoTools-Devel@lists.sourceforge.net>
    >> https://lists.sourceforge.net/lists/listinfo/geotools-devel
    <https://lists.sourceforge.net/lists/listinfo/geotools-devel>
    >
    >
    >
    >
    
------------------------------------------------------------------------------
    >
    >
    >
    > _______________________________________________
    > GeoTools-Devel mailing list
    > GeoTools-Devel@lists.sourceforge.net
    <mailto:GeoTools-Devel@lists.sourceforge.net>
    > https://lists.sourceforge.net/lists/listinfo/geotools-devel
    <https://lists.sourceforge.net/lists/listinfo/geotools-devel>
    >

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

    
------------------------------------------------------------------------------
    _______________________________________________
    GeoTools-Devel mailing list
    GeoTools-Devel@lists.sourceforge.net
    <mailto:GeoTools-Devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geotools-devel
    <https://lists.sourceforge.net/lists/listinfo/geotools-devel>



--
==
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
mob:   +39  333 8128928

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.

------------------------------------------------------------------------------
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to