A little further down the rabbit hole I think I see the issue, but I'm still 
not sure how to resolve it.  Per the wxxm schema (add link) a 
wxxm:DiscreteCoverage is just an extension of gml:DiscreteCoverage.  It doesn't 
add any elements, it just extends.  wxxm:domainSet defines itself as a 
substitution for gml:domainSet which exists under the gml:DiscreteCoverage.  

During the XML encoding GMLEncodingUtils.java inspects the schema and creates a 
list of acceptable propertyNames (namespace & element name) that could be 
present on the element.  In my case, gml:domainSet is returned as a potential 
propertyName.  The problem is that in the next step (GMLEncodingUtils.java 
L222) it tries to retrieve the properties from the feature hashmap by 
propertyName, but gml:domainSet isn't present in the map, only wxxm:domainSet 
so the match is not found and that section of the XML is not populated.  

The curious part is that the gml:domainSet attribute contains a 
substitutionGroup List which does in fact contain a wxxm:domainSet 
XSDElementDeclaration.  Unfortunately, I don't see any code that inspects the 
substitutionGroup.  A simple change such as iterating over the 
substitutionGroups and calling feature.getProperties(subGroupPropertyName) in 
the event that the first getProperties(propertyName) returns an empty 
collection might work, but could add significant processing time for complex 
schemas.

Does anyone have any other ideas or suggestions?

Thanks,

Kevin M. Weiss
Software Engineer
CRITICAL NETWORKS / HARRIS CORPORATION
harris.comĀ  / kevin.we...@harris.com


-----Original Message-----
From: kweis...@harris.com [mailto:kweis...@harris.com] 
Sent: Monday, December 12, 2016 4:25 PM
To: Ben Caradoc-Davies <b...@transient.nz>
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] App-schema troubleshooting

Hey Ben,
I tried your mapping suggestion, but the output remained the same.  I even 
downloaded and generated a mapping file via HALE (which is pretty cool btw), 
but the same problem occurs.  Stepping through the debugger I noticed that when 
the BindingPropertyExtractor.java tries to load the properties for the 
wxxm:DiscreteCoverage type, it finds a gml:domainSet element, but not the 
wxxm:domainSet element which specifies the substitutionGroup="gml:domainSet".  
Is there a trick to get app-schema to recognize substituionGroups as valid 
replacements?

Thanks,

Kevin M. Weiss
Software Engineer
CRITICAL NETWORKS / HARRIS CORPORATION
harris.comĀ  / kevin.we...@harris.com

-----Original Message-----
From: Ben Caradoc-Davies [mailto:b...@transient.nz]
Sent: Thursday, December 08, 2016 10:04 PM
To: Weiss, Kevin <kweis...@harris.com>
Cc: Nuno Oliveira <nuno.olive...@geo-solutions.it>; 
geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] App-schema troubleshooting

Kevin,

I think this is a feature chaining problem. The first thing I noticed is that 
in discretecoverage.xml you have 
<linkElement>discretecoverage_domain</linkElement> but I think this should 
match the targetElement of the nested type (wxxm:DomainObject). I also saw 
inputAttribute which might work but I think is meant for wrapping a 
non-application-schema data access (I have never used this and had to look it 
up). Can you just use OCQL as in the feature chaining guide? I threw in an 
isMultiple for good measure, giving me:

<AttributeMapping>
<targetAttribute>wxxm:domainSet</targetAttribute>
<sourceExpression>
<OCQL>id</OCQL>
<linkElement>wxxm:DomainObject</linkElement>
<linkField>FEATURE_LINK</linkField>
</sourceExpression>
<isMultiple>true</isMultiple>
<encodeIfEmpty>true</encodeIfEmpty>
</AttributeMapping>

Kind regards,
Ben.
------------------------------------------------------------------------------
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
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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to