Clarify whether schemas traversed in path expressions must be in scope

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

      Proposed

    • 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) 
    • 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  

      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>
      

       

            Assignee:
            Unassigned
            Reporter:
            handl
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: