[OLINGO-1062]Cannot consume Odata Reference Services with Annotations
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/8cbe468c Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/8cbe468c Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/8cbe468c Branch: refs/heads/master Commit: 8cbe468c2a9c9063c41aba46726f744843ca127d Parents: 58ec035 Author: Archana Rai <archana....@sap.com> Authored: Mon Aug 20 11:31:08 2018 +0530 Committer: Archana Rai <archana....@sap.com> Committed: Mon Aug 20 11:31:08 2018 +0530 ---------------------------------------------------------------------- .../apache/olingo/client/core/MetadataTest.java | 242 ++++ .../org/apache/olingo/client/core/$metadata.xml | 779 +++++++++++ .../org/apache/olingo/client/core/UI.xml | 467 +++++++ .../apache/olingo/client/core/annotations.xml | 1276 ++++++++++++++++++ .../org/apache/olingo/commons/api/edm/Edm.java | 20 + .../commons/api/edm/EdmBindingTarget.java | 7 + .../commons/api/edm/EdmEntityContainer.java | 8 + .../olingo/commons/api/edm/EdmProperty.java | 7 + .../api/edm/provider/CsdlAnnotation.java | 47 + .../provider/annotation/CsdlAnnotationPath.java | 22 + .../api/edm/provider/annotation/CsdlApply.java | 59 + .../api/edm/provider/annotation/CsdlCast.java | 55 + .../edm/provider/annotation/CsdlCollection.java | 37 + .../annotation/CsdlConstantExpression.java | 24 + .../api/edm/provider/annotation/CsdlIf.java | 46 + .../api/edm/provider/annotation/CsdlIsOf.java | 54 + .../provider/annotation/CsdlLabeledElement.java | 44 + .../annotation/CsdlLabeledElementReference.java | 21 + .../CsdlLogicalOrComparisonExpression.java | 47 + .../annotation/CsdlNavigationPropertyPath.java | 21 + .../api/edm/provider/annotation/CsdlNull.java | 38 + .../api/edm/provider/annotation/CsdlPath.java | 21 + .../provider/annotation/CsdlPropertyPath.java | 21 + .../provider/annotation/CsdlPropertyValue.java | 46 + .../api/edm/provider/annotation/CsdlRecord.java | 62 + .../api/edm/provider/annotation/CsdlUrlRef.java | 40 + .../olingo/commons/core/edm/AbstractEdm.java | 95 ++ .../core/edm/AbstractEdmBindingTarget.java | 11 + .../core/edm/EdmEntityContainerImpl.java | 432 +++++- .../commons/core/edm/EdmPropertyImpl.java | 23 + .../commons/core/edm/EdmProviderImpl.java | 291 +++- .../olingo/commons/core/edm/EdmTypeInfo.java | 17 +- .../commons/core/edm/EdmImplCallCreateTest.java | 41 + .../core/edm/provider/EdmSchemaImplTest.java | 2 +- .../uri/queryoption/apply/DynamicProperty.java | 5 + 35 files changed, 4407 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8cbe468c/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java index 0e2dd0f..3fc21d9 100644 --- a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java +++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java @@ -32,6 +32,7 @@ import org.apache.olingo.client.api.edm.xml.XMLMetadata; import org.apache.olingo.commons.api.Constants; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.EdmAction; +import org.apache.olingo.commons.api.edm.EdmActionImport; import org.apache.olingo.commons.api.edm.EdmAnnotation; import org.apache.olingo.commons.api.edm.EdmAnnotations; import org.apache.olingo.commons.api.edm.EdmComplexType; @@ -41,13 +42,17 @@ import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.commons.api.edm.EdmEnumType; import org.apache.olingo.commons.api.edm.EdmFunction; import org.apache.olingo.commons.api.edm.EdmFunctionImport; +import org.apache.olingo.commons.api.edm.EdmNavigationProperty; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; import org.apache.olingo.commons.api.edm.EdmProperty; import org.apache.olingo.commons.api.edm.EdmSchema; +import org.apache.olingo.commons.api.edm.EdmSingleton; import org.apache.olingo.commons.api.edm.EdmTerm; import org.apache.olingo.commons.api.edm.EdmTypeDefinition; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.edm.annotation.EdmExpression; +import org.apache.olingo.commons.api.edm.annotation.EdmPropertyValue; +import org.apache.olingo.commons.api.edm.annotation.EdmRecord; import org.apache.olingo.commons.api.edm.annotation.EdmUrlRef; import org.apache.olingo.commons.api.edm.constants.EdmTypeKind; import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation; @@ -525,4 +530,241 @@ public class MetadataTest extends AbstractTest { assertEquals("AnnotationPath", expression.asDynamic().getExpressionName()); } } + + @Test + public void readAnnotationOnAnEntityType() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmEntityType entity = edm.getEntityTypeWithAnnotations( + new FullQualifiedName("SEPMRA_SO_MAN2", "SEPMRA_C_CountryVHType")); + assertEquals(1, entity.getAnnotations().size()); + assertNotNull(entity.getAnnotations().get(0).getTerm()); + assertEquals("HeaderInfo", entity.getAnnotations().get(0).getTerm().getName()); + assertNotNull(entity.getAnnotations().get(0).getExpression()); + + EdmEntityType entity1 = edm.getEntityTypeWithAnnotations( + new FullQualifiedName("SEPMRA_SO_MAN2", "SEPMRA_C_SalesOrderCustCntctVHType")); + EdmAnnotation annotation = entity1.getAnnotations().get(0); + assertNotNull(annotation); + assertEquals(5, entity1.getAnnotations().size()); + assertEquals("FieldGroup", annotation.getTerm().getName()); + assertEquals("ContactPerson", annotation.getQualifier()); + EdmExpression expression = annotation.getExpression(); + assertNotNull(expression); + assertTrue(expression.isDynamic()); + EdmRecord record = expression.asDynamic().asRecord(); + assertNotNull(record); + assertEquals(2, record.asRecord().getPropertyValues().size()); + List<EdmPropertyValue> propertyValues = record.asRecord().getPropertyValues(); + assertEquals("Data", propertyValues.get(0).getProperty()); + assertTrue(propertyValues.get(0).getValue().isDynamic()); + List<EdmExpression> items = propertyValues.get(0).getValue().asDynamic().asCollection().getItems(); + assertEquals(4, items.size()); + assertEquals("Label", propertyValues.get(1).getProperty()); + assertEquals("Contact Person", propertyValues.get(1).getValue().asConstant().asPrimitive()); + + assertEquals(1, entity1.getNavigationProperty("to_Customer").getAnnotations().size()); + EdmNavigationProperty navProperty = entity1.getNavigationProperty("to_Customer"); + assertEquals("ThingPerspective", navProperty. + getAnnotations().get(0).getTerm().getName()); + } + + @Test + public void readAnnotationOnAProperty() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmEntityType entity = edm.getEntityTypeWithAnnotations( + new FullQualifiedName("SEPMRA_SO_MAN2", "I_DraftAdministrativeDataType")); + EdmProperty property = (EdmProperty) entity.getProperty("DraftUUID"); + assertNotNull(property.getAnnotations()); + assertEquals(1, property.getAnnotations().size()); + assertEquals("UI.HeaderInfo", property.getAnnotations().get(0).getTerm(). + getFullQualifiedName().getFullQualifiedNameAsString()); + } + + @Test + public void readAnnotationOnActionImport() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmEntityContainer container = edm.getEntityContainer(); + EdmActionImport actionImport = container.getActionImport("AIRTString"); + assertEquals(3, actionImport.getAnnotations().size()); + assertEquals("Description", actionImport.getAnnotations().get(0).getTerm().getName()); + assertEquals("HeaderInfo", actionImport.getAnnotations().get(2).getTerm().getName()); + } + + @Test + public void readAnnotationOnASingleton() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmEntityContainer container = edm.getEntityContainer(); + EdmSingleton singleton = container.getSingleton("SINav"); + assertEquals(1, singleton.getAnnotations().size()); + assertEquals("HeaderInfo", singleton.getAnnotations().get(0).getTerm().getName()); + + EdmEntityType singletonET = singleton.getEntityType(); + EdmProperty singlComplexProp = (EdmProperty)singletonET.getProperty("ComplexProperty"); + EdmComplexType singlCompType = (EdmComplexType) singlComplexProp.getTypeWithAnnotations(); + EdmNavigationProperty singlNavProp = (EdmNavigationProperty) singlCompType. + getNavigationProperty("NavPropertyDraftAdministrativeDataType"); + assertEquals(1, singlNavProp.getAnnotations().size()); + assertEquals("AdditionalInfo", singlNavProp.getAnnotations().get(0).getTerm().getName()); + } + + @Test + public void readAnnotationOnBoundFunction() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + List<String> parameterNames = new ArrayList<String>(); + EdmFunction function = edm.getBoundFunction(new FullQualifiedName("SEPMRA_SO_MAN2", "_FC_RTTimeOfDay_"), + new FullQualifiedName("Edm","TimeOfDay"), false, parameterNames); + assertEquals(1, function.getAnnotations().size()); + assertEquals("HeaderInfo", function.getAnnotations().get(0).getTerm().getName()); + + // Annotations on Bound Function parameter + assertEquals(1, function.getParameter("ParameterTimeOfDay").getAnnotations().size()); + assertEquals("HeaderInfo", function.getParameter("ParameterTimeOfDay") + .getAnnotations().get(0).getTerm().getName()); + } + + @Test + public void readAnnotationOnSchema() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmSchema schema = edm.getSchema("sepmra_so_man2_anno_mdl.v1"); + assertNotNull(schema); + assertEquals(112, schema.getAnnotationGroups().size()); + + EdmAnnotations annotations = edm.getSchema("SEPMRA_SO_MAN2").getAnnotationGroups().get(22); + assertEquals("SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderCustCntctVHType", annotations.getTargetPath()); + assertEquals(1, annotations.getAnnotations().size()); + assertEquals("SelectionFields", annotations.getAnnotations() + .get(0).getTerm().getName()); + assertTrue(annotations.getAnnotations().get(0).getExpression().isDynamic()); + } + + @Test + public void readAnnotationOnContainer() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmEntityContainer container = edm.getEntityContainer(); + assertEquals(1, container.getAnnotations().size()); + assertEquals("HeaderInfo", container.getAnnotations().get(0).getTerm().getName()); + } + + @Test + public void readAnnotationOnComplexType() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmComplexType complexType = edm.getComplexTypeWithAnnotations( + new FullQualifiedName("SEPMRA_SO_MAN2", "CTPrim")); + assertEquals(1, complexType.getAnnotations().size()); + assertEquals("HeaderInfo", complexType.getAnnotations().get(0).getTerm().getName()); + // Annotations on complex type property + EdmProperty complexTypeProp = (EdmProperty) complexType.getProperty("PropertyInt16"); + assertEquals(1, complexTypeProp.getAnnotations().size()); + assertEquals("HeaderInfo", complexTypeProp.getAnnotations().get(0).getTerm().getName()); + // Annotations on complex type navigation property + EdmNavigationProperty complexTypeNavProp = complexType. + getNavigationProperty("NavPropertyDraftAdministrativeDataType"); + assertEquals(1, complexTypeNavProp.getAnnotations().size()); + assertEquals("HeaderInfo", complexTypeNavProp.getAnnotations().get(0).getTerm().getName()); + } + + @Test + public void readAnnotationOnTypeDefinitions() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmTypeDefinition typeDefn = edm.getTypeDefinition(new FullQualifiedName("SEPMRA_SO_MAN2", "TDString")); + assertEquals(1, typeDefn.getAnnotations().size()); + assertEquals("HeaderInfo", typeDefn.getAnnotations().get(0).getTerm().getName()); + } + + @Test + public void readAnnotationOnBoundActions() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmAction action = edm.getBoundAction(new FullQualifiedName("SEPMRA_SO_MAN2", "BA_RTCountryVHType"), + new FullQualifiedName("SEPMRA_SO_MAN2","I_DraftAdministrativeDataType"), false); + assertEquals(1, action.getAnnotations().size()); + assertEquals("HeaderInfo", action.getAnnotations().get(0).getTerm().getName()); + + //Annotations on Bound Action parameter + assertEquals(1, action.getParameter("ParameterCTPrim").getAnnotations().size()); + assertEquals("HeaderInfo", action.getParameter("ParameterCTPrim") + .getAnnotations().get(0).getTerm().getName()); + } + + @Test + public void readAnnotationOnEntitySet() { + final Edm edm = fetchEdm(); + assertNotNull(edm); + EdmEntityContainer container = edm.getEntityContainer(); + EdmEntitySet entitySet = container.getEntitySet("I_DraftAdministrativeData"); + assertEquals(1, entitySet.getAnnotations().size()); + assertEquals("HeaderInfo", entitySet.getAnnotations().get(0).getTerm().getName()); + + + + EdmEntityType entityType50 = edm.getEntityTypeWithAnnotations( + new FullQualifiedName("SEPMRA_SO_MAN2", "I_DraftAdministrativeDataType")); + assertEquals(1, ((EdmProperty)entityType50.getProperty("DraftUUID")).getAnnotations().size()); + assertEquals("UI.HeaderInfo", ((EdmProperty)entityType50.getProperty("DraftUUID")). + getAnnotations().get(0).getTerm().getFullQualifiedName().getFullQualifiedNameAsString()); + + + + // Annotations on properties of entity type included in EntitySet + EdmEntityType entityType3 = entitySet.getEntityTypeWithAnnotations(); + assertEquals(2, ((EdmProperty)entityType3.getProperty("DraftUUID")).getAnnotations().size()); + assertEquals("AdditionalInfo", ((EdmProperty)entityType3.getProperty("DraftUUID")) + .getAnnotations().get(0).getTerm().getName()); + assertEquals("HeaderInfo", ((EdmProperty)entityType3.getProperty("DraftUUID")) + .getAnnotations().get(1).getTerm().getName()); + + // Annotations on navigation properties of entity type included in EntitySet + EdmEntitySet entitySet1 = container.getEntitySet("SEPMRA_C_SalesOrderCustCntctVH"); + EdmEntityType entityType5 = entitySet1.getEntityTypeWithAnnotations(); + assertEquals(2, ((EdmNavigationProperty)entityType5.getNavigationProperty("to_Customer")) + .getAnnotations().size()); + assertEquals("AdditionalInfo", ((EdmNavigationProperty)entityType5 + .getNavigationProperty("to_Customer")) + .getAnnotations().get(0).getTerm().getName()); + assertEquals("HeaderInfo", ((EdmNavigationProperty)entityType5 + .getNavigationProperty("to_Customer")) + .getAnnotations().get(1).getTerm().getName()); + + + + EdmComplexType complexType = edm.getComplexTypeWithAnnotations( + new FullQualifiedName("SEPMRA_SO_MAN2", "CTPrim")); + EdmProperty complexTypeProp = (EdmProperty) complexType.getProperty("PropertyInt16"); + assertEquals(1, complexTypeProp.getAnnotations().size()); + assertEquals("HeaderInfo", complexTypeProp.getAnnotations().get(0).getTerm().getName()); + + + + // Annotations on properties of complex properties of entity type included in EntitySet + EdmProperty complexProp = (EdmProperty) entityType3.getProperty("ComplexProperty"); + EdmComplexType compType = (EdmComplexType) complexProp.getTypeWithAnnotations(); + EdmProperty prop = (EdmProperty) compType.getProperty("PropertyInt16"); + assertEquals(1, prop.getAnnotations().size()); + assertEquals("AdditionalInfo", prop.getAnnotations().get(0).getTerm().getName()); + + // Annotations on navigation properties of complex properties of entity type included in EntitySet + EdmNavigationProperty navProp = (EdmNavigationProperty) compType + .getProperty("NavPropertyDraftAdministrativeDataType"); + assertEquals(1, navProp.getAnnotations().size()); + assertEquals("AdditionalInfo", navProp.getAnnotations().get(0).getTerm().getName()); + } + + private Edm fetchEdm() { + List<InputStream> streams = new ArrayList<InputStream>(); + streams.add(getClass().getResourceAsStream("annotations.xml")); + streams.add(getClass().getResourceAsStream("VOC_Core.xml")); + streams.add(getClass().getResourceAsStream("UI.xml")); + final Edm edm = client.getReader().readMetadata(getClass().getResourceAsStream("$metadata.xml"), + streams); + return edm; + } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8cbe468c/lib/client-core/src/test/resources/org/apache/olingo/client/core/$metadata.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/$metadata.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/$metadata.xml new file mode 100644 index 0000000..4a29589 --- /dev/null +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/$metadata.xml @@ -0,0 +1,779 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" Version="1.0"> + <edmx:Reference xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Uri="../v4.0/cs02/vocabularies/Org.OData.Common.V1.xml"> + <edmx:Include Namespace="com.vocabularies.Common.v1" Alias="Common"/> + </edmx:Reference> + <edmx:Reference xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Uri="../v4.0/cs02/vocabularies/Org.OData.Core.V1.xml"> + <edmx:Include Namespace="Org.OData.Core.V1" Alias="Core"/> + </edmx:Reference> + <edmx:DataServices m:DataServiceVersion="2.0"> + <Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="SEPMRA_SO_MAN2" xml:lang="en"> + <EnumType Name="ENString" IsFlags="true" UnderlyingType="Edm.Int16"> + <Member Name="String1" Value="1"/> + <Member Name="String2" Value="2"/> + <Member Name="String3" Value="4"/> + </EnumType> + <TypeDefinition Name="TDString" UnderlyingType="Edm.String" MaxLength="15"/> + <ComplexType Name="CTPrim"> + <Property Name="PropertyInt16" Type="Edm.Int16"/> + <NavigationProperty Name="NavPropertyDraftAdministrativeDataType" Type="SEPMRA_SO_MAN2.I_DraftAdministrativeDataType"/> + </ComplexType> + <EntityType Name="I_DraftAdministrativeDataType"> + <Key> + <PropertyRef Name="DraftUUID"/> + </Key> + <Property Name="DraftUUID" Type="Edm.Guid" Nullable="false"/> + <Property Name="ComplexProperty" Type="SEPMRA_SO_MAN2.CTPrim" Nullable="true"/> + <Property Name="DraftEntityType" Type="Edm.String" MaxLength="30"/> + <Property Name="CreationDateTime" Type="Edm.DateTimeOffset" Precision="7"/> + <Property Name="CreatedByUser" Type="Edm.String" MaxLength="12"/> + <Property Name="LastChangeDateTime" Type="Edm.DateTimeOffset" Precision="7"/> + <Property Name="LastChangedByUser" Type="Edm.String" MaxLength="12"/> + <Property Name="DraftAccessType" Type="Edm.String" MaxLength="1"/> + <Property Name="ProcessingStartDateTime" Type="Edm.DateTimeOffset" Precision="7"/> + <Property Name="InProcessByUser" Type="Edm.String" MaxLength="12"/> + <Property Name="DraftIsKeptByUser" Type="Edm.Boolean"/> + <Property Name="EnqueueStartDateTime" Type="Edm.DateTimeOffset" Precision="7"/> + <Property Name="DraftIsCreatedByMe" Type="Edm.Boolean"/> + <Property Name="DraftIsLastChangedByMe" Type="Edm.Boolean"/> + <Property Name="DraftIsProcessedByMe" Type="Edm.Boolean"/> + <Property Name="CreatedByUserDescription" Type="Edm.String" MaxLength="80"/> + <Property Name="LastChangedByUserDescription" Type="Edm.String" MaxLength="80"/> + <Property Name="InProcessByUserDescription" Type="Edm.String" MaxLength="80"/> + </EntityType> + <EntityType Name="SEPMRA_C_SalesOrderCustCntctVHType"> + <Key> + <PropertyRef Name="ContactPerson"/> + </Key> + <Property Name="ContactPerson" Type="Edm.String" Nullable="false" MaxLength="10"/> + <Property Name="Customer" Type="Edm.String" MaxLength="10"/> + <Property Name="FirstName" Type="Edm.String" MaxLength="40"/> + <Property Name="LastName" Type="Edm.String" MaxLength="40"/> + <Property Name="EmailAddress" Type="Edm.String" MaxLength="255"/> + <NavigationProperty Name="to_Customer" Type="SEPMRA_SO_MAN2.SEPMRA_C_CountryVHType"/> + </EntityType> + <EntityType Name="SEPMRA_C_CountryVHType"> + <Key> + <PropertyRef Name="Country"/> + </Key> + <Property Name="Country" Type="Edm.String" Nullable="false" MaxLength="3"/> + <Property Name="CountryT" Type="Edm.String" MaxLength="50"/> + </EntityType> + <Action Name="BA_RTCountryVHType" IsBound="true"> + <Parameter Name="ParameterCountryType" Type="SEPMRA_SO_MAN2.SEPMRA_C_CountryVHType" Nullable="false"/> + <ReturnType Type="SEPMRA_SO_MAN2.SEPMRA_C_CountryVHType"/> + </Action> + <Action Name="BA_RTCountryVHType" IsBound="true"> + <Parameter Name="ParameterSalesOrder" Type="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderCustCntctVHType" Nullable="false"/> + <Parameter Name="ParameterCTPrim" Type="SEPMRA_SO_MAN2.CTPrim" Nullable="false"/> + <ReturnType Type="SEPMRA_SO_MAN2.SEPMRA_C_CountryVHType"/> + </Action> + <Action Name="BA_RTCountryVHType" IsBound="true"> + <Parameter Name="ParameterDraftAdministrativeDataType" Type="SEPMRA_SO_MAN2.I_DraftAdministrativeDataType" Nullable="false"/> + <Parameter Name="ParameterCTPrim" Type="SEPMRA_SO_MAN2.CTPrim" Nullable="false"/> + <ReturnType Type="SEPMRA_SO_MAN2.I_DraftAdministrativeDataType"/> + </Action> + <Function Name="_FC_RTTimeOfDay_" IsBound="true" IsComposable="true"> + <Parameter Name="ParameterTimeOfDay" Type="Edm.TimeOfDay" Nullable="false"/> + <ReturnType Type="Edm.TimeOfDay"/> + </Function> + <Function Name="_FC_RTTimeOfDay_" IsBound="true" IsComposable="true"> + <Parameter Name="ParameterTimeOfDay" Type="Edm.TimeOfDay" Nullable="false"/> + <Parameter Name="ParameterAny" Type="Edm.String" Nullable="false"/> + <ReturnType Type="Edm.TimeOfDay"/> + </Function> + <EntityContainer Name="SEPMRA_SO_MAN2_Entities" m:IsDefaultEntityContainer="true"> + <EntitySet Name="I_DraftAdministrativeData" EntityType="SEPMRA_SO_MAN2.I_DraftAdministrativeDataType"/> + <EntitySet Name="SEPMRA_C_SalesOrderCustCntctVH" EntityType="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderCustCntctVHType"> + <NavigationPropertyBinding Path="Customer" Target="SEPMRA_C_CountryVH" /> + </EntitySet> + <EntitySet Name="SEPMRA_C_CountryVH" EntityType="SEPMRA_SO_MAN2.SEPMRA_C_CountryVHType"/> + <ActionImport Name="AIRTString" Action="Namespace1_Alias.UARTString"> + <Annotation Term="Core.Description"> + <String>Action Import returns a simple String</String> + </Annotation> + <Annotation Term="SEPMRA_SO_MAN2.Data"> + <Bool>true</Bool> + </Annotation> + </ActionImport> + <Singleton Name="SINav" Type="SEPMRA_SO_MAN2.I_DraftAdministrativeDataType"> + <NavigationPropertyBinding Path="NavPropertyDraftAdministrativeDataType" Target="I_DraftAdministrativeData"/> + </Singleton> + </EntityContainer> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderTP"> + <Annotation Term="Common.DraftRoot"> + <Record> + <PropertyValue Property="ActivationAction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderTPActivation"/> + <PropertyValue Property="EditAction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderTPEdit"/> + <PropertyValue Property="PreparationAction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderTPPreparation"/> + <PropertyValue Property="ValidationFunction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderTPValidation"/> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_ScheduleLineTP"> + <Annotation Term="Common.DraftNode"> + <Record> + <PropertyValue Property="PreparationAction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_ScheduleLineTPPreparation"/> + <PropertyValue Property="ValidationFunction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_ScheduleLineTPValidation"/> + </Record> + </Annotation> + <Annotation Term="Common.DraftActivationVia"> + <Collection> + <String>SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderTP</String> + </Collection> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderItemTP"> + <Annotation Term="Common.DraftNode"> + <Record> + <PropertyValue Property="PreparationAction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderItemTPPreparation"/> + <PropertyValue Property="ValidationFunction" String="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderItemTPValidation"/> + </Record> + </Annotation> + <Annotation Term="Common.DraftActivationVia"> + <Collection> + <String>SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderTP</String> + </Collection> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderCustCntctVHType/Customer"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Sales Order Customer"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderCustomer"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="Customer"/> + <PropertyValue Property="ValueListProperty" String="Customer"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CompanyName"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderCustomerVHType/Country"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Country"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_CountryVH"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="Country"/> + <PropertyValue Property="ValueListProperty" String="Country"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CountryT"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderItemTPType/SalesOrder"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Sales Order"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderTP"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SalesOrder"/> + <PropertyValue Property="ValueListProperty" String="SalesOrder"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderItemTPType/Product"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Product Value Help"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderProductVH"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="Product"/> + <PropertyValue Property="ValueListProperty" String="Product"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="Name"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="MainProductCategory"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="Supplier"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="SupplierName"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderItemTPType/TransactionCurrency"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Currency"/> + <PropertyValue Property="CollectionPath" String="I_Currency"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="TransactionCurrency"/> + <PropertyValue Property="ValueListProperty" String="Currency"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="Currency_Text"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderPartyVHType/Country"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Country"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_CountryVH"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="Country"/> + <PropertyValue Property="ValueListProperty" String="Country"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CountryT"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/CustomerContact"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Customer Contact Person"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderCustCntctVH"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SoldToParty"/> + <PropertyValue Property="ValueListProperty" String="Customer"/> + </Record> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="CustomerContact"/> + <PropertyValue Property="ValueListProperty" String="ContactPerson"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="FirstName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="LastName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="EmailAddress"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/SoldToParty"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Customer"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderCustomerVH"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SoldToParty"/> + <PropertyValue Property="ValueListProperty" String="Customer"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CompanyName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CityName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="Country"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CountryT"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/BillToParty"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Party"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderPartyVH"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="BillToParty"/> + <PropertyValue Property="ValueListProperty" String="Party"/> + </Record> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SoldToParty"/> + <PropertyValue Property="ValueListProperty" String="Customer"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="PartyName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CityName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="Country"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CountryT"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/ShipToParty"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Party"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderPartyVH"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="ShipToParty"/> + <PropertyValue Property="ValueListProperty" String="Party"/> + </Record> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SoldToParty"/> + <PropertyValue Property="ValueListProperty" String="Customer"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="PartyName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CityName"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="Country"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="CountryT"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/CreatedByUser"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Sales Order Reviser"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderReviser"/> + <PropertyValue Property="SearchSupported" Bool="false"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="CreatedByUser"/> + <PropertyValue Property="ValueListProperty" String="UserID"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/LastChangedByUser"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Sales Order Reviser"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderReviser"/> + <PropertyValue Property="SearchSupported" Bool="false"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="LastChangedByUser"/> + <PropertyValue Property="ValueListProperty" String="UserID"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/TransactionCurrency"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Currency"/> + <PropertyValue Property="CollectionPath" String="I_Currency"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="TransactionCurrency"/> + <PropertyValue Property="ValueListProperty" String="Currency"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="Currency_Text"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/SalesOrderOverallStatus"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Status"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderStatus"/> + <PropertyValue Property="SearchSupported" Bool="false"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SalesOrderOverallStatus"/> + <PropertyValue Property="ValueListProperty" String="SalesOrderOverallStatus"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="SalesOrderOverallStatus_Text"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/SalesOrderPaymentMethod"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="EPM Demo: Sales Order Payment Method Values"/> + <PropertyValue Property="CollectionPath" String="Sepm_I_SlsordPaymentMethod"/> + <PropertyValue Property="SearchSupported" Bool="false"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SalesOrderPaymentMethod"/> + <PropertyValue Property="ValueListProperty" String="SalesOrderPaymentMethod"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="SalesOrderPaymentMethod_Text"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType/SalesOrderPaymentTerms"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="EPM Demo: Sales Order Payment Terms"/> + <PropertyValue Property="CollectionPath" String="Sepm_I_SlsordPaymentTerms"/> + <PropertyValue Property="SearchSupported" Bool="false"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SalesOrderPaymentTerms"/> + <PropertyValue Property="ValueListProperty" String="SalesOrderPaymentTerms"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="SalesOrderPaymentTerms_Text"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_ScheduleLineTPType/SalesOrder"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Sales Order"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderTP"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SalesOrder"/> + <PropertyValue Property="ValueListProperty" String="SalesOrder"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_ScheduleLineTPType/SalesOrderItem"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Sales Order Item"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_C_SalesOrderItemTP"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SalesOrder"/> + <PropertyValue Property="ValueListProperty" String="SalesOrder"/> + </Record> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="SalesOrderItem"/> + <PropertyValue Property="ValueListProperty" String="SalesOrderItem"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_ScheduleLineTPType/QuantityUnit"> + <Annotation Term="Common.ValueList"> + <Record> + <PropertyValue Property="Label" String="Quantity Unit"/> + <PropertyValue Property="CollectionPath" String="SEPMRA_I_QuantityUnit"/> + <PropertyValue Property="SearchSupported" Bool="true"/> + <PropertyValue Property="Parameters"> + <Collection> + <Record Type="Common.ValueListParameterInOut"> + <PropertyValue Property="LocalDataProperty" PropertyPath="QuantityUnit"/> + <PropertyValue Property="ValueListProperty" String="UnitOfMeasure"/> + </Record> + <Record Type="Common.ValueListParameterDisplayOnly"> + <PropertyValue Property="ValueListProperty" String="UnitOfMeasure_Text"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderCustCntctVHType"> + <Annotation Term="UI.SelectionFields"> + <Collection> + <PropertyPath>ContactPerson</PropertyPath> + </Collection> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderItemTPType"> + <Annotation Term="Common.SemanticKey"> + <Collection> + <PropertyPath>SalesOrderItem</PropertyPath> + <PropertyPath>SalesOrder</PropertyPath> + </Collection> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderPartyVHType"> + <Annotation Term="Common.SemanticKey"> + <Collection> + <PropertyPath>Party</PropertyPath> + </Collection> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType"> + <Annotation Term="Common.SemanticKey"> + <Collection> + <PropertyPath>SalesOrder</PropertyPath> + </Collection> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_ScheduleLineTPType"> + <Annotation Term="Common.SemanticKey"> + <Collection> + <PropertyPath>ScheduleLine</PropertyPath> + <PropertyPath>SalesOrderItem</PropertyPath> + <PropertyPath>SalesOrder</PropertyPath> + </Collection> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_SO_MAN2_Entities/SEPMRA_C_SalesOrderCustomer"> + <Annotation Term="Capabilities.FilterRestrictions"> + <Record> + <PropertyValue Property="FilterExpressionRestrictions"> + <Collection> + <Record> + <PropertyValue Property="Property" PropertyPath="URL"/> + <PropertyValue Property="AllowedExpressions" String="SearchExpression"/> + </Record> + </Collection> + </PropertyValue> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderTPType"> + <Annotation Term="Common.SideEffects" Qualifier="AdminData"> + <Record> + <PropertyValue Property="SourceEntities"> + <Collection> + <NavigationPropertyPath/> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetProperties"> + <Collection> + <PropertyPath>LastChangedByUser</PropertyPath> + <PropertyPath>LastChangedDateTime</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="EffectTypes" EnumMember="Common.EffectType/ValueChange"/> + </Record> + </Annotation> + <Annotation Term="Common.SideEffects" Qualifier="SoldToPartyChange"> + <Record> + <PropertyValue Property="SourceProperties"> + <Collection> + <PropertyPath>SoldToParty</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetEntities"> + <Collection> + <NavigationPropertyPath>to_Customer</NavigationPropertyPath> + <NavigationPropertyPath>to_CustomerContact</NavigationPropertyPath> + <NavigationPropertyPath>to_BillToParty</NavigationPropertyPath> + <NavigationPropertyPath>to_ShipToParty</NavigationPropertyPath> + <NavigationPropertyPath>to_TransactionCurrency</NavigationPropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetProperties"> + <Collection> + <PropertyPath>CustomerContact</PropertyPath> + <PropertyPath>BillToParty</PropertyPath> + <PropertyPath>ShipToParty</PropertyPath> + <PropertyPath>NetAmountInTransactionCurrency</PropertyPath> + <PropertyPath>TransactionCurrency</PropertyPath> + <PropertyPath>CustomerContact_fc</PropertyPath> + <PropertyPath>BillToParty_fc</PropertyPath> + <PropertyPath>ShipToParty_fc</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="EffectTypes" EnumMember="Common.EffectType/ValueChange"/> + </Record> + </Annotation> + <Annotation Term="Common.SideEffects" Qualifier="BillToPartyChange"> + <Record> + <PropertyValue Property="SourceProperties"> + <Collection> + <PropertyPath>BillToParty</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetEntities"> + <Collection> + <NavigationPropertyPath>to_BillToParty</NavigationPropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="EffectTypes" EnumMember="Common.EffectType/ValueChange"/> + </Record> + </Annotation> + <Annotation Term="Common.SideEffects" Qualifier="ShipToPartyChange"> + <Record> + <PropertyValue Property="SourceProperties"> + <Collection> + <PropertyPath>ShipToParty</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetEntities"> + <Collection> + <NavigationPropertyPath>to_ShipToParty</NavigationPropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="EffectTypes" EnumMember="Common.EffectType/ValueChange"/> + </Record> + </Annotation> + <Annotation Term="Common.SideEffects" Qualifier="CustomerContactChange"> + <Record> + <PropertyValue Property="SourceProperties"> + <Collection> + <PropertyPath>CustomerContact</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetEntities"> + <Collection> + <NavigationPropertyPath>to_CustomerContact</NavigationPropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="EffectTypes" EnumMember="Common.EffectType/ValueChange"/> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_SalesOrderItemTPType"> + <Annotation Term="Common.SideEffects" Qualifier="ProductChange"> + <Record> + <PropertyValue Property="SourceProperties"> + <Collection> + <PropertyPath>Product</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetEntities"> + <Collection> + <NavigationPropertyPath>to_Product</NavigationPropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetProperties"> + <Collection> + <PropertyPath>GrossAmountInTransacCurrency</PropertyPath> + <PropertyPath>NetAmountInTransactionCurrency</PropertyPath> + <PropertyPath>TaxAmountInTransactionCurrency</PropertyPath> + <PropertyPath>to_SalesOrder/GrossAmountInTransacCurrency</PropertyPath> + <PropertyPath>to_SalesOrder/NetAmountInTransactionCurrency</PropertyPath> + <PropertyPath>to_SalesOrder/TaxAmountInTransactionCurrency</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="EffectTypes" EnumMember="Common.EffectType/ValueChange"/> + </Record> + </Annotation> + </Annotations> + <Annotations xmlns="http://docs.oasis-open.org/odata/ns/edm" Target="SEPMRA_SO_MAN2.SEPMRA_C_ScheduleLineTPType"> + <Annotation Term="Common.SideEffects" Qualifier="QuantityChange"> + <Record> + <PropertyValue Property="SourceProperties"> + <Collection> + <PropertyPath>Quantity</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="TargetProperties"> + <Collection> + <PropertyPath>to_SalesOrderItem/GrossAmountInTransacCurrency</PropertyPath> + <PropertyPath>to_SalesOrderItem/TaxAmountInTransactionCurrency</PropertyPath> + <PropertyPath>to_SalesOrderItem/NetAmountInTransactionCurrency</PropertyPath> + <PropertyPath>to_SalesOrder/GrossAmountInTransacCurrency</PropertyPath> + <PropertyPath>to_SalesOrder/NetAmountInTransactionCurrency</PropertyPath> + <PropertyPath>to_SalesOrder/TaxAmountInTransactionCurrency</PropertyPath> + </Collection> + </PropertyValue> + <PropertyValue Property="EffectTypes" EnumMember="Common.EffectType/ValueChange"/> + </Record> + </Annotation> + </Annotations> + </Schema> + </edmx:DataServices> +</edmx:Edmx> http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8cbe468c/lib/client-core/src/test/resources/org/apache/olingo/client/core/UI.xml ---------------------------------------------------------------------- diff --git a/lib/client-core/src/test/resources/org/apache/olingo/client/core/UI.xml b/lib/client-core/src/test/resources/org/apache/olingo/client/core/UI.xml new file mode 100644 index 0000000..6a084d7 --- /dev/null +++ b/lib/client-core/src/test/resources/org/apache/olingo/client/core/UI.xml @@ -0,0 +1,467 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"> + <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/os/vocabularies/Org.OData.Core.V1.xml"> + <edmx:Include Namespace="Org.OData.Core.V1" Alias="Core" /> + </edmx:Reference> + <edmx:Reference Uri="/coco/vocabularies/Communication.xml"> + <edmx:Include Namespace="Org.OData.Communication.V1" Alias="vCard" /> + </edmx:Reference> + <edmx:Reference Uri="/coco/vocabularies/Common.xml"> + <edmx:Include Namespace="Org.OData.Common.V1" Alias="Common" /> + </edmx:Reference> + <edmx:DataServices> + <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Alias="UI" Namespace="com.vocabularies.UI.v1"> + <Annotation Term="Core.Description"> + <String>Terms for presenting data in user interfaces</String> + </Annotation> + <Annotation Term="Core.Description" Qualifier="Published"> + <String>2013-10-16 © Copyright 2013</String> + </Annotation> + + <!-- Semantic Views / Perspectives --> + + <Term Name="HeaderInfo" Type="UI.HeaderInfoType" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + <Annotation Term="Core.Description"> + <String>HeaderInfos are mandatory and must be exposed on every thing of the model</String> + </Annotation> + </Term> + <ComplexType Name="HeaderInfoType"> + <Property Name="TypeName" Type="Edm.String"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="TypeNamePlural" Type="Edm.String" Nullable="false"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="TypeImageUrl" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsURL" /> + </Property> + <Property Name="Title" Type="UI.DataField" Nullable="false" /> + <Property Name="Description" Type="UI.DataField" Nullable="true" /> + <Property Name="ImageUrl" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsURL" /> + </Property> + </ComplexType> + + <Term Name="Identification" Type="Collection(UI.DataFieldAbstract)" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + <Annotation Term="Core.Description"> + <String>HeaderInfo plus this set of attributes identifies the object</String> + </Annotation> + </Term> + + <Term Name="Badge" Type="UI.BadgeType" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + <Annotation Term="Core.Description"> + <String>Badge is similar to a business card view</String> + </Annotation> + </Term> + <ComplexType Name="BadgeType"> + <Property Name="HeadLine" Type="UI.DataField" Nullable="false" /> + <Property Name="Title" Type="UI.DataField" Nullable="false" /> + <Property Name="ImageUrl" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsURL" /> + </Property> + <Property Name="TypeImageUrl" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsURL" /> + </Property> + <Property Name="MainInfo" Type="UI.DataField" Nullable="true" /> + <Property Name="SecondaryInfo" Type="UI.DataField" Nullable="true" /> + </ComplexType> + + <Term Name="LineItem" Type="Collection(UI.DataFieldAbstract)" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + </Term> + + <Term Name="StatusInfo" Type="Collection(UI.DataFieldAbstract)" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + </Term> + + <Term Name="FieldGroup" Type="UI.FieldGroupType" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + </Term> + <ComplexType Name="FieldGroupType"> + <Property Name="Label" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="Data" Type="Collection(UI.DataFieldAbstract)" /> + </ComplexType> + + <!-- To be discussed, please don't deliver --> + <Term Name="GeoPoints" Type="Collection(Edm.AnnotationPath)" AppliesTo="EntityType"> + <Annotation Term="Core.Description"> + <String> + Each collection element MUST reference an annotation of a + vCard.Contact or + collection of vCard.ContactData or + UI.Contacts or + UI.GeoLocation or + of UI.GeoLocationType + </String> + </Annotation> + <Annotation Term="UI.ThingPerspective" /> + </Term> + <!-- To be discussed, please don't deliver --> + + <Term Name="GeoLocations" Type="Collection(UI.GeoLocationType)" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + </Term> + <Term Name="GeoLocation" Type="UI.GeoLocationType" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + </Term> + <ComplexType Name="GeoLocationType"> + <Annotation Term="Core.Description"> + <String>Set of Attributes which defines the Localization of the object</String> + </Annotation> + <Property Name="Latitude" Type="Edm.Double" Nullable="true" /> + <Property Name="Longitude" Type="Edm.Double" Nullable="true" /> + <Property Name="Location" Type="Edm.GeographyPoint" Nullable="true" /> + <Property Name="Address" Type="vCard.AddressType" Nullable="true" /> + </ComplexType> + + <Term Name="Contacts" Type="Collection(Edm.AnnotationPath)" AppliesTo="EntityType"> + <Annotation Term="Core.Description" String="Each collection element MUST reference an annotation of a vCard.Contact" /> + <Annotation Term="UI.ThingPerspective" /> + </Term> + + <!-- To be discussed, please don't deliver --> + <Term Name="MediaResource" Type="UI.MediaResourceType" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + <Annotation Term="Core.Description" String="Properties that are relevant for Media Resources" /> + </Term> + <ComplexType Name="MediaResourceType"> + <Property Name="Url" Type="Edm.String" Nullable="false"> + <Annotation Term="Core.IsURL" /> + </Property> + <Property Name="ContentType" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsMediaType" /> + </Property> + <Property Name="ByteSize" Type="Edm.Int64" Nullable="true" /> + <Property Name="ChangedAt" Type="Edm.DateTimeOffset" Nullable="true" /> + <Property Name="Thumbnail" Type="UI.ImageType" Nullable="true" /> + <Property Name="Title" Type="UI.DataField" Nullable="false" /> + <Property Name="Description" Type="UI.DataField" Nullable="true" /> + </ComplexType> + <ComplexType Name="ImageType"> + <Property Name="Url" Type="Edm.String" Nullable="false"> + <Annotation Term="Core.IsURL" /> + </Property> + <Property Name="Width" Type="Edm.String" Nullable="true" /> + <Property Name="Height" Type="Edm.String" Nullable="true" /> + </ComplexType> + <!-- To be discussed, please don't deliver --> + + <!-- To be discussed, please don't deliver --> + <Term Name="AdditionalInfo" Type="Edm.AnnotationPath" AppliesTo="Annotation"> + <Annotation Term="Core.Description"> + <String> + Applies to UI.GeoLocation and vCard.Contact annotations only + Provides additional related information for a UI.GeoLocation or vCard.Contact + Reference to UI.HeaderInfo, UI.Badge, a qualified UI.FieldGroup, or a dedicated property tagged with Core.IsUrl + </String> + </Annotation> + </Term> + <!-- To be discussed, please don't deliver --> + + <Term Name="DataPoint" Type="UI.DataPointType" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + </Term> + <ComplexType Name="DataPointType"> + <Property Name="Title" Type="Edm.String" Nullable="false"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="Description" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="LongDescription" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="Value" Type="Edm.PrimitiveType" Nullable="false"> + <Annotation Term="Core.Description" String="The numeric value of the DataPoint" /> + <Annotation Term="Core.LongDescription"> + <String> + It could be annotated with either UoM.ISOCurrency or UoM.Unit. + Percentage values are annotated with UoM.Unit = '%'. + A renderer should take an optional Common.Text annotation into consideration. + </String> + </Annotation> + </Property> + <Property Name="ValueFormat" Type="UI.NumberFormat" Nullable="true" /> + <Property Name="ReferencePeriod" Type="UI.ReferencePeriod" Nullable="true" /> + <Property Name="Criticality" Type="UI.CriticalityType" Nullable="true" /> + <Property Name="CriticalityCalculation" Type="UI.CriticalityCalculationType" Nullable="true" /> + <Property Name="Trend" Type="UI.TrendType" Nullable="true" /> + <Property Name="TrendCalculation" Type="UI.TrendCalculationType" Nullable="true" /> + <Property Name="Responsible" Type="vCard.ContactType" Nullable="true" /> + </ComplexType> + + <ComplexType Name="NumberFormat"> + <Property Name="ScaleFactor" Type="Edm.Decimal" Scale="variable" Nullable="true" /> + <Property Name="NumberOfFractionalDigits" Type="Edm.Byte" Nullable="true" /> + </ComplexType> + + <ComplexType Name="ReferencePeriod"> + <Property Name="Description" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="Start" Type="Edm.DateTimeOffset" Nullable="true" /> + <Property Name="End" Type="Edm.DateTimeOffset" Nullable="true" /> + </ComplexType> + + <EnumType Name="CriticalityType"> + <Member Name="Negative" /> + <Member Name="Critical" /> + <Member Name="Positive" /> + </EnumType> + + <ComplexType Name="CriticalityCalculationType"> + <Annotation Term="Core.Description"> + <String> + Direction: Target + - Positive: ge ToleranceRangeLowValue and le ToleranceRangeHighValue + - Critical: ge DeviationRangeLowValue and lt ToleranceRangeLowValue or + gt ToleranceRangeHighValue and le DeviationRangeHighValue + - Negative: lt DeviationRangeLowValue and gt DeviationRangeHighValue + Direction: Minimize + - Positive: le ToleranceRangeHighValue + - Critical: gt ToleranceRangeHighValue and le DeviationRangeHighValue + - Negative: gt DeviationRangeHighValue + Direction: Maximize + - Positive: ge ToleranceRangeLowValue + - Critical: lt ToleranceRangeLowValue and ge DeviationRangeLowValue + - Negative: lt DeviationRangeLowValue + </String> + </Annotation> + <Property Name="ImprovementDirection" Type="UI.ImprovementDirectionType" Nullable="false"> + </Property> + <Property Name="ToleranceRangeLowValue" Type="Edm.PrimitiveType" Nullable="true" /> + <Property Name="ToleranceRangeHighValue" Type="Edm.PrimitiveType" Nullable="true" /> + <Property Name="DeviationRangeLowValue" Type="Edm.PrimitiveType" Nullable="true" /> + <Property Name="DeviationRangeHighValue" Type="Edm.PrimitiveType" Nullable="true" /> + </ComplexType> + + <EnumType Name="ImprovementDirectionType"> + <Member Name="Minimize" /> + <Member Name="Target" /> + <Member Name="Maximize" /> + </EnumType> + + <EnumType Name="TrendType"> + <Member Name="StrongUp" /> + <Member Name="Up" /> + <Member Name="Sideways" /> + <Member Name="Down" /> + <Member Name="StrongDown" /> + </EnumType> + + <ComplexType Name="TrendCalculationType"> + <Annotation Term="Core.Description"> + <String> + Value sub ReferenceValue ( div ReferenceValue if IsRelativeDifference ) must be + - StrongUp: ge StrongUpDifference + - Up: lt StrongUpDifference and ge UpDifference + - Sideways: lt UpDifference and gt DownDifference + - Down: gt StrongDownDifference and le DownDifference + - StrongDown: le StrongDownDifference + </String> + </Annotation> + <Property Name="ReferenceValue" Type="Edm.PrimitiveType" Nullable="false" /> + <Property Name="IsRelativeDifference" Type="Edm.Boolean" DefaultValue="false" /> + <Property Name="UpDifference" Type="Edm.Decimal" Nullable="false" /> + <Property Name="StrongUpDifference" Type="Edm.Decimal" Nullable="false" /> + <Property Name="DownDifference" Type="Edm.Decimal" Nullable="false" /> + <Property Name="StrongDownDifference" Type="Edm.Decimal" Nullable="false" /> + </ComplexType> + + <Term Name="Chart" Type="UI.ChartDefinitionType" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + </Term> + <ComplexType Name="ChartDefinitionType"> + <Property Name="Title" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="Description" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + <Property Name="ChartType" Type="UI.ChartType" Nullable="false" /> + <Property Name="Measures" Type="Collection(Edm.PropertyPath)" /> + <Property Name="Dimensions" Type="Collection(Edm.PropertyPath)" /> + </ComplexType> + + <EnumType Name="ChartType"> + <Member Name="Column" /> + <Member Name="ColumnStacked" /> + <Member Name="ColumnStacked100" /> + <Member Name="Bar" /> + <Member Name="BarStacked" /> + <Member Name="BarStacked100" /> + <Member Name="Area" /> + <Member Name="AreaStacked" /> + <Member Name="AreaStacked100" /> + <Member Name="HorizontalArea" /> + <Member Name="HorizontalAreaStacked" /> + <Member Name="HorizontalAreaStacked100" /> + <Member Name="Line" /> + <Member Name="Pie" /> + <Member Name="Donut" /> + <Member Name="Scatter" /> + <Member Name="Bubble" /> + <Member Name="Radar" /> + <Member Name="HeatMap" /> + <Member Name="TreeMap" /> + <Member Name="Waterfall" /> + <!-- Future: GeoPie, GeoBubble, ChoroplethMap --> + </EnumType> + + <Term Name="SelectionFields" Type="Collection(Edm.PropertyPath)" AppliesTo="EntityType"> + <Annotation Term="UI.ThingPerspective" /> + <Annotation Term="Core.Description" String="Properties that might be relevant for filtering a listof entity instances" /> + </Term> + + <!-- Segmentation of content according to facets of the Object --> + + <Term Name="Facets" Type="Collection(UI.Facet)" AppliesTo="EntityType"> + </Term> + + <ComplexType Name="Facet" Abstract="true"> + <Annotation Term="Core.Description" String="Base type for facets" /> + <Property Name="Label" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + </ComplexType> + <ComplexType Name="CollectionFacet" BaseType="UI.Facet"> + <Annotation Term="Core.Description" String="Collection of Facets" /> + <Property Name="Facets" Type="Collection(UI.Facet)" /> + </ComplexType> + <ComplexType Name="ReferenceFacet" BaseType="UI.Facet"> + <Annotation Term="Core.Description" String="Facet that refers to a thing perspective, e.g. LineItem" /> + <Property Name="Target" Type="Edm.AnnotationPath" Nullable="false"> + <Annotation Term="Core.Description"> + <String>Path MUST end in vCard.Contact or vCard.Address or a term that is tagged with UI.ThingPerspective, e.g. UI.StatusInfo, UI.LineItem, UI.Identification, UI.FieldGroup, UI.Badge</String> + </Annotation> + </Property> + </ComplexType> + <ComplexType Name="ReferenceURLFacet" BaseType="UI.Facet"> + <Property Name="Url" Type="Edm.String" Nullable="false"> + <Annotation Term="Core.IsURL" /> + </Property> + <Property Name="UrlContentType" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsMediaType" /> + </Property> + </ComplexType> + + + <!-- basic type definitions for reuse goes here --> + + <Term Name="ThingPerspective" Type="Core.Tag" DefaultValue="true" AppliesTo="Term"> + <Annotation Term="Core.Description" String="This Term is a Thing Perspective" /> + </Term> + <Term Name="IsSummary" Type="Core.Tag" DefaultValue="true" AppliesTo="Record"> + <Annotation Term="Core.Description" + String="This Facet and all included Facets are the summary of the thing. At most one Facet of a thing can be tagged with this term" /> + <Annotation Term="Core.RequiresType" String="UI.Facet" /> + </Term> + <Term Name="PartOfPreview" Type="Core.Tag" DefaultValue="true" AppliesTo="Record"> + <Annotation Term="Core.Description" String="This Facet and all included Facets are part of the Thing preview" /> + <Annotation Term="Core.RequiresType" String="UI.Facet" /> + </Term> + <Term Name="Map" Type="Core.Tag" DefaultValue="true" AppliesTo="Record"> + <Annotation Term="Core.Description" String="Target MUST reference a UI.GeoLocation, vCard.Address or a collection of these" /> + <Annotation Term="Core.RequiresType" String="UI.ReferenceFacet" /> + </Term> + <!-- To be discussed, please don't deliver --> + <Term Name="Gallery" Type="Core.Tag" DefaultValue="true" AppliesTo="Record"> + <Annotation Term="Core.Description" String="Target MUST reference a UI.MediaResource" /> + <Annotation Term="Core.RequiresType" String="UI.ReferenceFacet" /> + </Term> + <!-- To be discussed, please don't deliver --> + + <Term Name="IsImageURL" Type="Core.Tag" DefaultValue="true" AppliesTo="Property Term"> + <Annotation Term="Core.Description" + String="Properties and terms annotated with this term MUST contain a valid URL referencing an resource with a MIME type image" /> + <Annotation Term="Core.RequiresType" String="Edm.String" /> + </Term> + <Term Name="MultiLineText" Type="Core.Tag" DefaultValue="true" AppliesTo="Property"> + <Annotation Term="Core.Description" + String="Properties annotated with this annotation should be rendered as multi-line text (e.g. text area)" /> + <Annotation Term="Core.RequiresType" String="Edm.String" /> + </Term> + <!-- To be discussed, please don't deliver --> + <!-- not ready yet, wait for UI5 concerning the format of that value --> + <Term Name="DisplayTimeZone" Type="Edm.Int32" AppliesTo="Property"> + <Annotation Term="Core.Description"> + <String>Contains information for time- or date-time-fields in which time zone the time value should be displayed.</String> + </Annotation> + </Term> + <!-- To be discussed, please don't deliver --> + + <Term Name="Importance" Type="UI.ImportanceType" AppliesTo="Annotation Record"> + <Annotation Term="Core.Description" + String="Expresses the importance, e.g. importance of a DataField or a the importance of a annotation" /> + </Term> + <EnumType Name="ImportanceType"> + <Member Name="High" /> + <Member Name="Medium" /> + <Member Name="Low" /> + </EnumType> + + <ComplexType Name="DataFieldAbstract" Abstract="true"> + <Property Name="Label" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + </ComplexType> + + <ComplexType Name="DataFieldForAnnotation" BaseType="UI.DataFieldAbstract"> + <Property Name="Target" Type="Edm.AnnotationPath"> + <Annotation Term="Core.Description" String="Annotation path MUST end in vCard.Address or UI.DataPoint" /> + </Property> + </ComplexType> + <ComplexType Name="DataFieldForAction" BaseType="UI.DataFieldAbstract"> + <Property Name="Action" Type="Common.QualifiedName"> + <Annotation Term="Core.Description" String="Qualified name of an Action, Function, ActionImport or FunctionImport in scope" /> + </Property> + </ComplexType> + <ComplexType Name="DataField" BaseType="UI.DataFieldAbstract"> + <Property Name="Value" Type="Edm.PrimitiveType" Nullable="false"> + <Annotation Term="Core.IsLanguageDependent" /> + </Property> + </ComplexType> + <ComplexType Name="DataFieldWithNavigationPath" BaseType="UI.DataField"> + <Property Name="Target" Type="Edm.NavigationPropertyPath" Nullable="false"> + <Annotation Term="Core.Description"> + <String>Contains either a navigation property or a term cast, where term is of type Edm.EntityType or a concrete entity type or a collection of these types</String> + </Annotation> + </Property> + </ComplexType> + <ComplexType Name="DataFieldWithUrl" BaseType="UI.DataField"> + <Property Name="Url" Type="Edm.String" Nullable="false"> + <Annotation Term="Core.IsURL" /> + </Property> + <Property Name="UrlContentType" Type="Edm.String" Nullable="true"> + <Annotation Term="Core.IsMediaType" /> + </Property> + </ComplexType> + + </Schema> + </edmx:DataServices> +</edmx:Edmx> \ No newline at end of file