On Tue, Oct 5, 2010 at 10:45 AM,  <rini.angre...@csiro.au> wrote:
> You can only use functions to skip the attribute if you use the feature 
> chaining syntax.
> I said "syntax", because you can omit linkField, therefore it's not really 
> chaining it and won't generate the extra "joining" queries, it only recycles 
> the syntax.
> http://docs.geoserver.org/latest/en/user/data/app-schema/polymorphism.html#data-type-polymorphism
>
> "You can omit the linkField and OCQL if the FeatureTypeMapping being linked 
> to has the same sourceType with the container type. This would save us from 
> unnecessary extra queries, which would affect performance."
>
> Anyway, you can't use the functions because you can't "chain" simple 
> attributes (seeing both x and y are xs:integer).
> However, I know what the problem is.
> If you refer to this: http://jira.codehaus.org/browse/GEOT-2679, it was 
> decided that if the value is null and:
>
> 1. IF minOccur == 0 THEN skip the attribute silently
> 2. IF minOccur > 0 && nillable THEN let it pass through validation in 
> Types.validate()
> 3. IF minOccur > 0 && !nillable THEN it will throw an error through 
> validation in Types.validate()
>
> So, it's correct that it throws the error, as the attribute shouldn't be null.
> Normally, we put an xlink:href in the ClientProperty when the values are 
> missing, i.e. one of these:
>
> urn:ogc:def:nil:OGC::inapplicable
> urn:ogc:def:nil:OGC::missing
> urn:ogc:def:nil:OGC::template
> urn:ogc:def:nil:OGC::unknown
> urn:ogc:def:nil:OGC::withheld
>
> Maybe that's what you need, and the use case that's missing is:
>
> 4. IF minOccur > 0 && !nillable && has xlink HREF THEN it should pass through 
> validation Types.validate()
>
> We never had this problem for complex attributes, because they never have 
> null as a value, but an empty array instead(since the binding is a Collection 
> for complex types).
> Actually, Niels is working on the same problem, but it's for Geometry 
> attributes, and you're working on simple attributes.
> What I think we should do is add another condition in the validate method to 
> check for xlink:href (from the attribute descriptor user data):
>
>        if (attributeContent == null) {
>  --> check for xlink:href here and skip the following
>            if (!attribute.isNillable()) {
>                throw new IllegalAttributeException(attribute.getDescriptor(), 
> type.getName()
>                        + " not nillable");
>            }
>            return;
>        }
> I will get Niels to speak to you as well.

In my case I have no xlinks, the schema is pretty simple, I have a
complex attribute that contains two integer, the complex attribute is
nillable, its contents are not.
I think I just need to avoid generating the complex attribute, but I
don't know how...
I was expecting some logic like: if all sub-attributes of this complex
attribute are missing, then the complex attribute is missing as well.
But it seems it's not there.

> I like that you're working on app-schema and fix all our existing problems :)

Eh, I wish I could, but in fact I'm on the clock, so if I don't find a
quick way to contribute a solution to this
I'll just create an amended schema that does not break the datastore
and then use xlst heavily to generate
the expected output... :-(

Cheers
Andrea


-----------------------------------------------------
Ing. Andrea Aime
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy

phone: +39 0584962313
fax:     +39 0584962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-----------------------------------------------------

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to