[ https://issues.apache.org/jira/browse/OLINGO-1062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15986441#comment-15986441 ]
Ralf Handl commented on OLINGO-1062: ------------------------------------ [~rareddy] no, there's no implicit reference/knowledge about the core vocabularies. On the other hand we strongly encourage implementations to follow [Postel's Law|https://en.wikipedia.org/wiki/Robustness_principle] and "be liberal in what you accept from others", so the client library REALLY SHOULD pass the annotation on to the calling application and work as if the term namespace had been included from a /dev/null URL without an alias. Note: URIs in edmx:Reference elements don't have to be dereferenceable, so a document with <edmx:Reference Uri="you:wont:find:this"> <edmx:Include Namespace="Unknown.Schema" /> </edmx:Reference> is perfectly legal. As the library can't rely on dereferencing the Uri and thus checking whether the term Unknown.Schema.SomeTerm is actually defined there, it can just work as if it had found such a placeholder edmx:Reference, and only fail if the client application asks for e.g. Uri attribute value. > Cannot consume Odata Reference Services with Annotations > -------------------------------------------------------- > > Key: OLINGO-1062 > URL: https://issues.apache.org/jira/browse/OLINGO-1062 > Project: Olingo > Issue Type: Bug > Components: odata4-client > Affects Versions: (Java) V4 4.3.0 > Reporter: Lars Laegner > > The http://services.odata.org/TripPinRESTierService/ service returns the > following annotation: > ... > <EntitySet Name="Airlines" > EntityType="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Airline"> > <Annotation Term="Org.OData.Core.V1.OptimisticConcurrency"> <Collection> > <PropertyPath>Name</PropertyPath> </Collection> </Annotation> </EntitySet> ... > unfortunately, the used Org.OData.Core.V1 namespace is not referencing > anywhere an alias or namespace in the schema. > This results, when retrieving the code with the latest available OData V4 Lib > for Java, in the EdmAnnotationClass Code > public EdmTerm getTerm() { > if (term == null) { > if (annotation.getTerm() == null) { throw new EdmException("Term must not be > null for an annotation."); } > term = edm.getTerm(new FullQualifiedName(annotation.getTerm())); > } > return term; } > that in debugging the > annotation.getTerm()=="Org.OData.Core.V1.OptimisticConcurrency" but the term > is then set to null from edm.getTerm() as it seems to check for available > namespace/aliases in the schema and cannot find one. > So practically, this annotation does not exist for the currently latest > Olingo-OData-Client-for-Java-4.3.0 > The same for > http://services.odata.org/V4/(S(tauqx0n1pg4nytucatnssdwb))/TripPinServiceRW/ > I have cross created this issue in > https://github.com/OData/odataorg.github.io/issues/117 as i am not sure, > wether the service is not correct or the client should be more forgiving -- This message was sent by Atlassian JIRA (v6.3.15#6346)