Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-1303

Clarify whether schemas traversed in path expressions must be in scope

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.01_CS01
    • Fix Version/s: V4.01_CS02
    • Component/s: CSDL JSON, CSDL XML
    • Labels:
      None
    • Environment:

      Proposed

    • Proposal:
      Hide

      It is sufficient to reference service B from service A.

      A client/validator needs to read the metadata of service B anyway to find out whether the referenced entity type from service B has a navigation property NavPropToServiceC. Then it can use the references within service B's metadata to figure out where NavPropToServiceC points to, and if necessary follow a reference from service B to service C for the next step of validation.

      This is true for all path traversal (i.e., in URL) and is in contrast to directly referencing a type defined in service C's schema from service A (which requires a direct reference to service c's schema) 

      Show
      It is sufficient to reference service B from service A. A client/validator needs to read the metadata of service B anyway to find out whether the referenced entity type from service B has a navigation property NavPropToServiceC. Then it can use the references within service B's metadata to figure out where NavPropToServiceC points to, and if necessary follow a reference from service B to service C for the next step of validation. This is true for all path traversal (i.e., in URL) and is in contrast to directly referencing a type defined in service C's schema from service A (which requires a direct reference to service c's schema) 
    • Resolution:
      Show
      https://www.oasis-open.org/committees/download.php/65434/odata-csdl-json-v4.01-wd05-2019-06-07.docx https://www.oasis-open.org/committees/download.php/65435/odata-csdl-xml-v4.01-wd06-2019-06-07.docx  

      Description

      Assume service A references service B, which in turn references service C.

      If I annotate an entity type in service A with a path expression using cross-service navigation to services B and C, do I need to reference/include the corresponding schemas of B an C, or is it sufficient to only reference/include the schema of service A containing the targeted entity type?

      Example

      <Annotations Target="SchemaServiceA.SomeEntityType">
        <Annotation Term="SomeVocab.SomeTerm" Path="NavPropToServiceB/NavPropToServiceC/ServiceCProperty"/>
      </Annotations>
      

       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              handl Ralf Handl
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: