You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Joshua Darnell (Jira)" <ji...@apache.org> on 2020/05/14 06:47:00 UTC

[jira] [Created] (OLINGO-1452) Metadata Validation Does Not Enforce Key Field Exists in EntityType Definition

Joshua Darnell created OLINGO-1452:
--------------------------------------

             Summary: Metadata Validation Does Not Enforce Key Field Exists in EntityType Definition
                 Key: OLINGO-1452
                 URL: https://issues.apache.org/jira/browse/OLINGO-1452
             Project: Olingo
          Issue Type: Bug
          Components: odata4-client
    Affects Versions: (Java) V4 4.7.1
         Environment: Linux, OSX, Windows.
            Reporter: Joshua Darnell
             Fix For: (Java) V4 4.7.1


Using the Olingo XML Metadata validation methods, they correctly catch the case where there is no Key property defined in the metadata for a given EntityType definition.  

For example, this will produce an error:
{code:java}
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
  <edmx:DataServices>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="org.example">
      <EntityType Name="SomeEntityType">
        <Property Name="SomeEntityTypeKey" Type="edm.String" Nullable="false" />
      </EntityType>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Default">
      <EntityContainer Name="Container">
        <EntitySet Name="SomeEntityType" EntityType="org.example.SomeEntityType"/>
      </EntityContainer>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>{code}
 

However, the Key can be defined without the EntityType's Property definition for that field being present, and this is something that the metadata validation does not catch. 
{code:java}
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
  <edmx:DataServices>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="org.example">
      <EntityType Name="SomeEntityType">
        <Key>
          <PropertyRef Name="SomeEntityTypeKey"/>
        </Key>
      </EntityType>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Default">
      <EntityContainer Name="Container">
        <EntitySet Name="SomeEntityType" EntityType="org.example.SomeEntityType"/>
      </EntityContainer>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>{code}
 

This ticket was created to request that XML metadata validation check both whether a Key is present, and that the defined key also has a corresponding {{Property}} definition in the metadata. Otherwise, metadata validation should fail. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)