-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: CSDL XML
-
Labels:None
-
Environment:
[Proposed]
-
Proposal:
-
Resolution:
Define rules around what the target of a PropertyValue in an Annotation may be. It MUST be the specified type, or contain an Annotation mapping it to the specified type.
Field | Original Value | New Value |
---|---|---|
Proposal |
When mapping properties of a term the target of the mapping MUST be of the type specified in the term definition or a derived type of the specified type, or annotated with the specified type or a subtype of the specified type. Example vocabulary: <Schema Namespace="vCard"> <Term Name="Contact" Type="vCard.ContactType" AppliesTo="EntityType,ComplexType" /> <ComplexType Name="ContactType"> <Property Name="PhoneNumbers" Type="Collection(vCard.PhoneNumberType)" /> ... </ComplexType> <Term Name="PhoneNumber" Type="vCard.PhoneNumberType" AppliesTo="EntityType,ComplexType" /> <ComplexType Name="PhoneNumberType"> <Property Name="Number" Type="String"/> ... </ComplexType> </Schema> Example service with annotations: <Schema Namespace="SomeService"> <EntityType Name="Customer"> ... <NavigationProperty Name="Phones" Type="Collection(SomeService.Phone)"/> ... <Annotation Term="vCard.Contact"> <Record> <PropertyValue Property="PhoneNumbers" Path="Phones/vCard.PhoneNumber#work" /> </Record> </Annotation> </EntityType> <EntityType Name="Phone"> ... <Property Name="work_phone_number" Type="String"/> ... <Annotation Term="vCard.PhoneNumber" Qualifier="work"> <Record> <PropertyValue Property="Number" Path="work_phone_number" /> </Record> </Annotation> </EntityType> </Schema> |
|
Description | Define rules around what the target of a PropertyValue in a TypeAnnotation may be. It MUST be the specified type, or contain a TypeAnnotation mapping it to the specified type. | Define rules around what the target of a PropertyValue in an Annotation may be. It MUST be the specified type, or contain an Annotation mapping it to the specified type. |
Environment | [Proposed] |
Status | New [ 10000 ] | Open [ 1 ] |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Resolved [ 5 ] |
Proposal |
When mapping properties of a term the target of the mapping MUST be of the type specified in the term definition or a derived type of the specified type, or annotated with the specified type or a subtype of the specified type. Example vocabulary: <Schema Namespace="vCard"> <Term Name="Contact" Type="vCard.ContactType" AppliesTo="EntityType,ComplexType" /> <ComplexType Name="ContactType"> <Property Name="PhoneNumbers" Type="Collection(vCard.PhoneNumberType)" /> ... </ComplexType> <Term Name="PhoneNumber" Type="vCard.PhoneNumberType" AppliesTo="EntityType,ComplexType" /> <ComplexType Name="PhoneNumberType"> <Property Name="Number" Type="String"/> ... </ComplexType> </Schema> Example service with annotations: <Schema Namespace="SomeService"> <EntityType Name="Customer"> ... <NavigationProperty Name="Phones" Type="Collection(SomeService.Phone)"/> ... <Annotation Term="vCard.Contact"> <Record> <PropertyValue Property="PhoneNumbers" Path="Phones/vCard.PhoneNumber#work" /> </Record> </Annotation> </EntityType> <EntityType Name="Phone"> ... <Property Name="work_phone_number" Type="String"/> ... <Annotation Term="vCard.PhoneNumber" Qualifier="work"> <Record> <PropertyValue Property="Number" Path="work_phone_number" /> </Record> </Annotation> </EntityType> </Schema> |
When mapping properties of a term the target of the mapping MUST be of the type specified in the term definition or a derived type of the specified type, or annotated with the specified type or a subtype of the specified type. Example vocabulary: <Schema Namespace="vCard"> <Term Name="Contact" Type="vCard.ContactType" AppliesTo="EntityType,ComplexType" /> <ComplexType Name="ContactType"> <Property Name="PhoneNumbers" Type="Collection(vCard.PhoneNumberType)" /> ... </ComplexType> <Term Name="PhoneNumber" Type="vCard.PhoneNumberType" AppliesTo="EntityType,ComplexType" /> <ComplexType Name="PhoneNumberType"> <Property Name="Number" Type="String"/> ... </ComplexType> </Schema> Example service with annotations: <Schema Namespace="SomeService"> <EntityType Name="Customer"> ... <NavigationProperty Name="Phones" Type="Collection(SomeService.Phone)"/> ... <Annotation Term="vCard.Contact"> <Record> <PropertyValue Property="PhoneNumbers" Path="Phones/vCard.PhoneNumber#work" /> </Record> </Annotation> </EntityType> <EntityType Name="Phone"> ... <Property Name="work_phone_number" Type="String"/> ... <Annotation Term="vCard.PhoneNumber" Qualifier="work"> <Record> <PropertyValue Property="Number" Path="work_phone_number" /> </Record> </Annotation> </EntityType> </Schema> Accepted: https://www.oasis-open.org/committees/download.php/48097/odata-meeting-23_on-20130130_31-F2F-minutes.html#odata-108 |
Assignee | Ralf Handl [ ralfhandl ] |
Resolution |
https://www.oasis-open.org/committees/download.php/48171/odata-core-v1.0-wd01-part3-csdl-2013-02-07-RH.doc https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/schemas/csdl.xsd?rev=175 |
|
Status | Resolved [ 5 ] | Applied [ 10002 ] |
Assignee | Ralf Handl [ ralfhandl ] | Ralf Handl [ handl ] |