-
Proposal:
Hide
Rephrase section 8.1 The edm:ComplexType element to:
The edm:ComplexType element represents a complex type in an entity model.
The complex type MUST declare a SimpleIdentifier value for the Name attribute.
If no base type is specified, the edm:ComplexType element MUST contain one or more edm:Property elements describing the properties of the complex type.
If a base type is specified, the edm:ComplexType element MAY contain zero or more edm:Property elements describing additional properties of the derived complex type.
Accepted: https://www.oasis-open.org/committees/download.php/48346/odata-meeting-26_on-20130221-minutes.html#odata-273
Show
Rephrase section 8.1 The edm:ComplexType element to:
The edm:ComplexType element represents a complex type in an entity model.
The complex type MUST declare a SimpleIdentifier value for the Name attribute.
If no base type is specified, the edm:ComplexType element MUST contain one or more edm:Property elements describing the properties of the complex type.
If a base type is specified, the edm:ComplexType element MAY contain zero or more edm:Property elements describing additional properties of the derived complex type.
Accepted: https://www.oasis-open.org/committees/download.php/48346/odata-meeting-26_on-20130221-minutes.html#odata-273
-
Resolution:
Show
https://www.oasis-open.org/committees/download.php/48378/odata-core-v4.0-wd01-part3-csdl-2013-02-26-RH.doc
https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/schemas/edm.xsd?rev=201
Accepted: https://www.oasis-open.org/committees/download.php/48549/odata-meeting-29_on-20130314-minutes.html#odata-273
The current prose spec requires complex types to define one or more properties even if it inherits from a base type.
For entity types that's not required: it is explicitly stated that they only must have at least one property if they do not specify a base type.
The XML Schema for CSDL does NOT require complex types to have at least one Property child element, which is consistent with entity types
{"report":{"apdex":1,"isInitial":true,"journeyId":"300cd8c4-7dc8-4937-b758-1f325803fd95","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":622.0999999046326,"redirectCount":0,"resourceLoadedEnd":637.8999996185303,"resourceLoadedStart":190.39999961853027,"resourceTiming":[{"duration":77.7000002861023,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":190.39999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":190.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":77.69999980926514,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":190.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":190.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.3999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":77.7000002861023,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":190.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":190.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.59999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":77.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":191.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":191.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.59999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":77.30000019073486,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":191.39999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":191.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.69999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":100.7999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":191.59999990463257,"connectEnd":191.59999990463257,"connectStart":191.59999990463257,"domainLookupEnd":191.59999990463257,"domainLookupStart":191.59999990463257,"fetchStart":191.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":191.59999990463257,"responseEnd":292.3999996185303,"responseStart":292.3999996185303,"secureConnectionStart":191.59999990463257},{"duration":129.80000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":192.19999980926514,"connectEnd":192.19999980926514,"connectStart":192.19999980926514,"domainLookupEnd":192.19999980926514,"domainLookupStart":192.19999980926514,"fetchStart":192.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":192.19999980926514,"responseEnd":322,"responseStart":322,"secureConnectionStart":192.19999980926514},{"duration":132,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":192.39999961853027,"connectEnd":192.39999961853027,"connectStart":192.39999961853027,"domainLookupEnd":192.39999961853027,"domainLookupStart":192.39999961853027,"fetchStart":192.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":192.39999961853027,"responseEnd":324.3999996185303,"responseStart":324.3999996185303,"secureConnectionStart":192.39999961853027},{"duration":132.2999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":192.59999990463257,"connectEnd":192.59999990463257,"connectStart":192.59999990463257,"domainLookupEnd":192.59999990463257,"domainLookupStart":192.59999990463257,"fetchStart":192.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":192.59999990463257,"responseEnd":324.8999996185303,"responseStart":324.8999996185303,"secureConnectionStart":192.59999990463257},{"duration":132.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":192.7999997138977,"connectEnd":192.7999997138977,"connectStart":192.7999997138977,"domainLookupEnd":192.7999997138977,"domainLookupStart":192.7999997138977,"fetchStart":192.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":192.7999997138977,"responseEnd":325.2999997138977,"responseStart":325.2999997138977,"secureConnectionStart":192.7999997138977},{"duration":132.59999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":193,"connectEnd":193,"connectStart":193,"domainLookupEnd":193,"domainLookupStart":193,"fetchStart":193,"redirectEnd":0,"redirectStart":0,"requestStart":193,"responseEnd":325.59999990463257,"responseStart":325.59999990463257,"secureConnectionStart":193},{"duration":242.40000009536743,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":193.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":193.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":435.5,"responseStart":0,"secureConnectionStart":0},{"duration":132.80000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":193.2999997138977,"connectEnd":193.2999997138977,"connectStart":193.2999997138977,"domainLookupEnd":193.2999997138977,"domainLookupStart":193.2999997138977,"fetchStart":193.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":193.2999997138977,"responseEnd":326.09999990463257,"responseStart":326.09999990463257,"secureConnectionStart":193.2999997138977},{"duration":217.40000009536743,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":228.39999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":228.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":445.7999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":217.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":228.69999980926514,"connectEnd":228.69999980926514,"connectStart":228.69999980926514,"domainLookupEnd":228.69999980926514,"domainLookupStart":228.69999980926514,"fetchStart":228.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":228.69999980926514,"responseEnd":446.09999990463257,"responseStart":446.09999990463257,"secureConnectionStart":228.69999980926514},{"duration":245.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":239.09999990463257,"connectEnd":239.09999990463257,"connectStart":239.09999990463257,"domainLookupEnd":239.09999990463257,"domainLookupStart":239.09999990463257,"fetchStart":239.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":239.09999990463257,"responseEnd":484.19999980926514,"responseStart":484.19999980926514,"secureConnectionStart":239.09999990463257},{"duration":351.59999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":258.69999980926514,"connectEnd":258.69999980926514,"connectStart":258.69999980926514,"domainLookupEnd":258.69999980926514,"domainLookupStart":258.69999980926514,"fetchStart":258.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":258.69999980926514,"responseEnd":610.2999997138977,"responseStart":610.2999997138977,"secureConnectionStart":258.69999980926514},{"duration":38.30000019073486,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":445.2999997138977,"connectEnd":445.2999997138977,"connectStart":445.2999997138977,"domainLookupEnd":445.2999997138977,"domainLookupStart":445.2999997138977,"fetchStart":445.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":445.2999997138977,"responseEnd":483.59999990463257,"responseStart":483.59999990463257,"secureConnectionStart":445.2999997138977}],"threshold":1000,"fetchStart":1,"domainLookupStart":72,"domainLookupEnd":72,"connectStart":72,"connectEnd":120,"secureConnectionStart":96,"requestStart":120,"responseStart":179,"responseEnd":259,"domLoading":182,"domInteractive":684,"domContentLoadedEventStart":684,"domContentLoadedEventEnd":726,"domComplete":930,"loadEventStart":930,"loadEventEnd":933,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"6c9aa5f9c12872","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":112,"dbReadsTimeInMs":16,"dbConnsTimeInMs":26,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
Yes, derived types should not be required to introduced new properties. We should have clarified this when we added inheritance for complex types.
Should we require properties for a complex type with no base type? we do for entities, because the entity must declare key properties, but this is not the case for complex types. Not requiring properties even for the base type would allow defining a common base "marker" type that other types could derive from.