'with { encode "XML"; encode "JSON"; }'
OneM2M_Ports.ttcn: In TTCN-3 module `OneM2M_Ports': OneM2M_Ports.ttcn:53.2-86: In external function definition `enc_PrimitiveContentXML': OneM2M_Ports.ttcn:53.47-62: error: Input type `@OneM2M_Types.PrimitiveContent' does not support XER encoding. The following fields do not support XER encoding: aEAnnc_optional, aE_optional, accessControlPolicy_optional, accessControlPolicyAnnc_optional, contentInstance_optional, contentInstanceAnnc_optional, container_optional, containerAnnc_optional, flexContainer_optional, cSEBase_optional, group_optional, groupAnnc_optional, locationPolicy_optional, locationPolicyAnnc_optional, mgmtResource_optional, announcedMgmtResource_optional, node_optional, nodeAnnc_optional, pollingChannel_optional, schedule_optional, scheduleAnnc_optional, serviceSubscribedAppRule_optional, subscription_optional, semanticDescriptor_optional, genericInterworkingOperationInstance_optional, securityInfo, notification, aggregatedNotification, attributeList, responsePrimitive, resource, uRIList, resourceRefList, aggregatedResponse, aE_update_invalid, aCP_update_invalid, container_update_invalid, group_update_invalid, pollingChannel_update_invalid, schedule_update_invalid, subscription_update_invalid, locationPolicy_update_invalid OneM2M_Ports.ttcn:56.2-86: In external function definition `dec_PrimitiveContentXML': OneM2M_Ports.ttcn:56.71-86: error: Output type `@OneM2M_Types.PrimitiveContent' does not support XER encoding
with { encode "XML"; //encode "JSON"; : : }
type union PrimitiveContent { : }with{ variant(aEAnnc_optional) "JSON:name as aEAnnc_optional"; };
module test_codec{ import from OneM2M_TestSystem all; import from OneM2M_Templates all; import from OneM2M_Types all; import from OneM2M_TypesAndValues all; import from OneM2M_Pixits all; import from OneM2M_Pics all; import from OneM2M_Functions all; import from LibCommon_Time all; import from XSD all; external function enc_PrimitiveContentXML(in PrimitiveContent pdu) return octetstring with { extension "prototype (convert) encode(XER:XER_EXTENDED)" } external function dec_PrimitiveContentXML(in octetstring pdu) return PrimitiveContent with { extension "prototype (convert) decode(XER:XER_EXTENDED)" } external function enc_PrimitiveContentJSON(in PrimitiveContent pdu) return octetstring with { extension "prototype (convert) encode(JSON)" } external function dec_PrimitiveContentJSON(in octetstring pdu) return PrimitiveContent with { extension "prototype (convert) decode(JSON)" } testcase tc_codecTest() runs on CseTester system CseSystem { var RequestPrimitive v_primitive := valueof(m_createServiceSubscribedAppRule({"None"}, {PX_APP_ID}, {"C-AE-ID-STEM"})); log(v_primitive); var octetstring v_result :=enc_PrimitiveContentJSON(v_primitive.primitiveContent); log(v_result); v_result :=enc_PrimitiveContentXML(v_primitive.primitiveContent); log(v_result); } control { execute(tc_codecTest()) } }
15:27:23.244584 Component type OneM2M_TestSystem.CseTester was initialized. 15:27:23.244856 Function rnd() returned 0.912226. 15:27:23.247558 { operation := int1 (1), to_ := "NotInitialized", from_ := "NotInitialized", requestIdentifier := "tc_codecTest-m_createServiceSubscribedAppRule912227", resourceType := int19 (19), primitiveContent := { serviceSubscribedAppRule_optional := { resourceName := omit, resourceType := omit, resourceID := omit, parentID := omit, creationTime := omit, lastModifiedTime := omit, labels := omit, accessControlPolicyIDs := omit, expirationTime := omit, dynamicAuthorizationConsultationIDs := omit, applicableCredIDs := { "None" }, allowedApp_IDs := { "myAppId" }, allowedAEs := { "C-AE-ID-STEM" }, allowedRole_IDs := omit, choice := omit } }, roleIDs := omit, originatingTimestamp := omit, requestExpirationTimestamp := omit, resultExpirationTimestamp := omit, operationExecutionTime := omit, responseType := omit, resultPersistence := omit, resultContent := omit, eventCategory := omit, deliveryAggregation := omit, groupRequestIdentifier := omit, filterCriteria := omit, discoveryResultType := omit, tokens := omit, tokenIDs := omit, localTokenIDs := omit, tokenRequestIndicator := omit } 15:27:23.256308 '7B22736572766963655375627363726962656441707052756C655F6F7074696F6E616C223A7B226170706C696361626C6543726564494473223A5B224E6F6E65225D2C22616C6C6F7765644170705F494473223A5B226D794170704964225D2C22616C6C6F776564414573223A5B22432D41452D49442D5354454D225D7D7D'O ("{\"serviceSubscribedAppRule_optional\":{\"applicableCredIDs\":[\"None\"],\"allowedApp_IDs\":[\"myAppId\"],\"allowedAEs\":[\"C-AE-ID-STEM\"]}}") 15:27:23.259801 '3C5072696D6974697665436F6E74656E7420786D6C6E733A6D326D3D27687474703A2F2F7777772E6F6E656D326D2E6F72672F786D6C2F70726F746F636F6C73273E0A093C6D326D3A736572766963655375627363726962656441707052756C655F6F7074696F6E616C3E0A09093C6170706C696361626C65437265644944733E4E6F6E653C2F6170706C696361626C65437265644944733E0A09093C616C6C6F7765644170702D4944733E6D7941707049643C2F616C6C6F7765644170702D4944733E0A09093C616C6C6F7765644145733E432D41452D49442D5354454D3C2F616C6C6F7765644145733E0A093C2F6D326D3A736572766963655375627363726962656441707052756C655F6F7074696F6E616C3E0A3C2F5072696D6974697665436F6E74656E743E0A0A'O ("<PrimitiveContent xmlns:m2m='http://www.onem2m.org/xml/protocols'>\n\t<m2m:serviceSubscribedAppRule_optional>\n\t\t<applicableCredIDs>None</applicableCredIDs>\n\t\t<allowedApp-IDs>myAppId</allowedApp-IDs>\n\t\t<allowedAEs>C-AE-ID-STEM</allowedAEs>\n\t</m2m:serviceSubscribedAppRule_optional>\n</PrimitiveContent>\n\n") 15:27:23.260746 Terminating component type OneM2M_TestSystem.CseTester.
with{ variant "untagged"; variant(aEAnnc_optional) "JSON:name as aEAnnc_optional"; variant(aE_optional) "JSON:name as aE_optional"; variant(accessControlPolicy_optional) "JSON:name as accessControlPolicy_optional"; variant(accessControlPolicyAnnc_optional) "JSON:name as accessControlPolicyAnnc_optional"; variant(contentInstance_optional) "JSON:name as contentInstance_optional"; variant(contentInstanceAnnc_optional) "JSON:name as contentInstanceAnnc_optional"; variant(container_optional) "JSON:name as container_optional"; variant(flexContainer_optional) "JSON:name as flexContainer_optional"; variant(cSEBase_optional) "JSON:name as cSEBase_optional"; variant(group_optional) "JSON:name as group_optional"; variant(groupAnnc_optional) "JSON:name as groupAnnc_optional"; variant(locationPolicy_optional) "JSON:name as locationPolicy_optional"; variant(locationPolicyAnnc_optional) "JSON:name as locationPolicyAnnc_optional"; variant(mgmtResource_optional) "JSON:name as mgmtResource_optional"; variant(announcedMgmtResource_optional) "JSON:name as announcedMgmtResource_optional"; variant(node_optional) "JSON:name as node_optional"; variant(nodeAnnc_optional) "JSON:name as nodeAnnc_optional"; variant(pollingChannel_optional) "JSON:name as pollingChannel_optional"; variant(schedule_optional) "JSON:name as schedule_optional"; variant(serviceSubscribedAppRule_optional) "JSON:name as serviceSubscribedAppRule_optional"; variant(subscription_optional) "JSON:name as subscription_optional"; variant(semanticDescriptor_optional) "JSON:name as semanticDescriptor_optional"; variant(genericInterworkingOperationInstance_optional) "JSON:name as genericInterworkingOperationInstance_optional"; variant(securityInfo) "JSON:name as securityInfo"; variant(notification) "JSON:name as notification"; variant(aggregatedNotification) "JSON:name as aggregatedNotification"; variant(attributeList) "JSON:name as attributeList"; variant(responsePrimitive) "JSON:name as responsePrimitive"; variant(resource) "JSON:name as resource"; variant(uRIList) "JSON:name as uRIList"; variant(resourceRefList) "JSON:name as resourceRefList"; variant(aggregatedResponse) "JSON:name as aggregatedResponse"; variant(uRI) "JSON:name as uRI"; variant(debugInfo) "JSON:name as debugInfo"; variant(aE_update_invalid) "JSON:name as aE_update_invalid"; variant(aCP_update_invalid) "JSON:name as aCP_update_invalid"; variant(container_update_invalid) "JSON:name as container_update_invalid"; variant(group_update_invalid) "JSON:name as group_update_invalid"; variant(pollingChannel_update_invalid) "JSON:name as pollingChannel_update_invalid"; variant(schedule_update_invalid) "JSON:name as schedule_update_invalid"; variant(subscription_update_invalid) "JSON:name as subscription_update_invalid"; variant(locationPolicy_update_invalid) "JSON:name as locationPolicy_update_invalid"; };