Constant DMN_3_0082
Source pub const DMN_3_0082: &str = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<definitions namespace=\"https://github.com/dmn-tck/tck\"\n name=\"0082-feel-coercion\"\n id=\"_6cd7f5d2-7cbb-45ea-b9bd-58ab1b6f678c\"\n xmlns=\"https://www.omg.org/spec/DMN/20191111/MODEL/\">\n <description>\n FEEL type conformance of results in decision tables and business knowledge models\n </description>\n \n <itemDefinition name=\"tNumberList\" isCollection=\"true\">\n <typeRef>number</typeRef>\n </itemDefinition>\n \n <itemDefinition name=\"tStringList\" isCollection=\"true\">\n <typeRef>string</typeRef>\n </itemDefinition>\n \n <itemDefinition name=\"tDS_001\">\n <functionItem outputTypeRef=\"string\">\n <parameters name=\"a\" typeRef=\"string\"/>\n <parameters name=\"b\" typeRef=\"string\"/>\n <parameters name=\"c\" typeRef=\"string\"/>\n <parameters name=\"d\" typeRef=\"string\"/>\n </functionItem>\n </itemDefinition>\n \n <itemDefinition name=\"tNameAndAge\">\n <itemComponent name=\"name\">\n <typeRef>string</typeRef>\n </itemComponent>\n <itemComponent name=\"age\">\n <typeRef>number</typeRef>\n </itemComponent>\n </itemDefinition>\n \n <decision name=\"decision_001\" id=\"_decision_001\">\n <variable typeRef=\"string\" name=\"decision_001\"/>\n <literalExpression>\n <text>1+1</text>\n </literalExpression>\n </decision>\n<!--\n <decision name=\"decision_002\" id=\"_decision_002\">\n <variable typeRef=\"tStringList\" name=\"decision_002\"/>\n <literalExpression>\n <text>[1,2,\"foo\"]</text>\n </literalExpression>\n </decision>\n-->\n <decision name=\"decision_003\" id=\"_decision_003\">\n <variable typeRef=\"tNumberList\" name=\"decision_003\"/>\n <literalExpression>\n <text>[1,2,\"foo\"]</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_004\" id=\"_decision_004\">\n <variable typeRef=\"tNameAndAge\" name=\"decision_004\"/>\n <literalExpression>\n <text>{name: \"foo\", surname: \"bar\", age: 10}</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_005\" id=\"_decision_005\">\n <variable typeRef=\"tNameAndAge\" name=\"decision_005\"/>\n <literalExpression>\n <text>{name: \"foo\"}</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_006\" id=\"_decision_006\">\n <variable typeRef=\"tStringList\" name=\"decision_006\"/>\n <literalExpression>\n <text>\"foo\"</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_006_a\" id=\"_decision_006_a\">\n <variable typeRef=\"tNumberList\" name=\"decision_006_a\"/>\n <literalExpression>\n <text>\"foo\"</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_007\" id=\"_decision_007\">\n <variable typeRef=\"string\" name=\"decision_007\"/>\n <literalExpression>\n <text>[\"foo\"]</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_007_a\" id=\"_decision_007_a\">\n <variable typeRef=\"string\" name=\"decision_007_a\"/>\n <literalExpression>\n <text>[1]</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_008\" id=\"_decision_008\">\n <variable typeRef=\"tStringList\" name=\"decision_008\"/>\n <literalExpression>\n <text>null</text>\n </literalExpression>\n </decision>\n \n <businessKnowledgeModel name=\"bkm_001\" id=\"_bkm_001\">\n <variable name=\"bkm_001\"/>\n <encapsulatedLogic>\n <formalParameter name=\"nameAndAge\" typeRef=\"tNameAndAge\"/>\n <literalExpression>\n <text>nameAndAge != null</text>\n </literalExpression>\n </encapsulatedLogic>\n </businessKnowledgeModel>\n \n <decision name=\"decision_bkm_001\" id=\"_decision_bkm_001\">\n <variable name=\"decision_bkm_001\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_001\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_001({name: \"foo\", surname: \"bar\", age: 10})</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_bkm_002\" id=\"_decision_bkm_002\">\n <variable name=\"decision_bkm_002\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_001\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_001({name: \"foo\"})</text>\n </literalExpression>\n </decision>\n \n <!-- has an explicit context return type but return boolean -->\n <businessKnowledgeModel name=\"bkm_002\" id=\"_bkm_002\">\n <variable name=\"bkm_002\" />\n <encapsulatedLogic>\n <formalParameter name=\"nameAndAge\" typeRef=\"tNameAndAge\"/>\n <literalExpression typeRef=\"tNameAndAge\">\n <text>nameAndAge != null</text>\n </literalExpression>\n </encapsulatedLogic>\n </businessKnowledgeModel>\n \n <decision name=\"decision_bkm_003\" id=\"_decision_bkm_003\">\n <variable name=\"decision_bkm_003\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_002\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_002({name: \"foo\"})</text>\n </literalExpression>\n </decision>\n \n <businessKnowledgeModel name=\"bkm_004\" id=\"_bkm_004\">\n <variable name=\"bkm_004\"/>\n <encapsulatedLogic>\n <formalParameter name=\"arg\"/>\n <literalExpression typeRef=\"tNumberList\">\n <text>arg</text>\n </literalExpression>\n </encapsulatedLogic>\n </businessKnowledgeModel>\n \n <businessKnowledgeModel name=\"bkm_005\" id=\"_bkm_005\">\n <variable name=\"bkm_005\"/>\n <encapsulatedLogic>\n <formalParameter name=\"arg\"/>\n <literalExpression typeRef=\"number\">\n <text>[arg]</text>\n </literalExpression>\n </encapsulatedLogic>\n </businessKnowledgeModel>\n \n <decision name=\"decision_bkm_004\" id=\"_decision_bkm_004\">\n <variable name=\"decision_bkm_004\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_004\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_004(10)</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_bkm_004_a\" id=\"_decision_bkm_004_a\">\n <variable name=\"decision_bkm_004_a\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_004\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_004(\"foo\")</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_bkm_004_b\" id=\"_decision_bkm_004_b\">\n <variable name=\"decision_bkm_004_b\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_004\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_004(null)</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_bkm_005\" id=\"_decision_bkm_005\">\n <variable name=\"decision_bkm_005\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_005\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_005(10)</text>\n </literalExpression>\n </decision>\n \n <decision name=\"decision_bkm_005_a\" id=\"_decision_bkm_005_a\">\n <variable name=\"decision_bkm_005_a\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_005\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>bkm_005(\"foo\")</text>\n </literalExpression>\n </decision>\n \n <decision name=\"invoke_001\" id=\"_invoke_001\">\n <variable name=\"invoke_001\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_001\"/>\n </knowledgeRequirement>\n <invocation>\n <literalExpression>\n <text>bkm_001</text>\n </literalExpression>\n <binding>\n <parameter name=\"nameAndAge\"/>\n <!-- passed incorrect param to bkm -->\n <literalExpression>\n <text>{name: \"foo\"}</text>\n </literalExpression>\n </binding>\n </invocation>\n </decision>\n \n <decision name=\"invoke_002\" id=\"_invoke_002\">\n <variable name=\"invoke_002\" typeRef=\"string\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_001\"/>\n </knowledgeRequirement>\n <invocation typeRef=\"string\"> <!-- list type will cause null-coercion -->\n <literalExpression>\n <text>bkm_001</text>\n </literalExpression>\n <binding>\n <parameter name=\"nameAndAge\"/>\n <!-- pass correct param to bkm, but the invocation has an explicit typeref-->\n <literalExpression>\n <text>{name: \"foo\", age: 10}</text>\n </literalExpression>\n </binding>\n </invocation>\n </decision>\n \n <decision name=\"invoke_003\" id=\"_invoke_003\">\n <variable name=\"invoke_003\" typeRef=\"tNumberList\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_005\"/>\n </knowledgeRequirement>\n <invocation typeRef=\"tNumberList\"> <!-- bkm returns number but invocation is a number list type -->\n <literalExpression>\n <text>bkm_005</text>\n </literalExpression>\n <binding>\n <parameter name=\"arg\"/>\n <literalExpression>\n <text>10</text>\n </literalExpression>\n </binding>\n </invocation>\n </decision>\n \n <decision name=\"invoke_004\" id=\"_invoke_004\">\n <variable name=\"invoke_004\" typeRef=\"tNumberList\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_005\"/>\n </knowledgeRequirement>\n <invocation typeRef=\"tNumberList\"> <!-- bkm returns string but invocation is a number list type -->\n <literalExpression>\n <text>bkm_005</text>\n </literalExpression>\n <binding>\n <parameter name=\"arg\"/>\n <literalExpression>\n <text>\"foo\"</text>\n </literalExpression>\n </binding>\n </invocation>\n </decision>\n \n <decision name=\"invoke_005\" id=\"_invoke_005\">\n <variable name=\"invoke_005\" typeRef=\"number\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_005\"/>\n </knowledgeRequirement>\n <invocation typeRef=\"number\"> <!-- bkm returns number array but invocation type is a number -->\n <literalExpression>\n <text>bkm_005</text>\n </literalExpression>\n <binding>\n <parameter name=\"arg\"/>\n <literalExpression>\n <text>[10]</text>\n </literalExpression>\n </binding>\n </invocation>\n </decision>\n \n <decision name=\"invoke_006\" id=\"_invoke_006\">\n <variable name=\"invoke_006\" typeRef=\"number\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_005\"/>\n </knowledgeRequirement>\n <invocation typeRef=\"number\"> <!-- bkm returns string array but invocation type is a number -->\n <literalExpression>\n <text>bkm_005</text>\n </literalExpression>\n <binding>\n <parameter name=\"arg\"/>\n <literalExpression>\n <text>[\"foo\"]</text>\n </literalExpression>\n </binding>\n </invocation>\n </decision>\n\n <decision name=\"invoke_007\" id=\"_invoke_007\">\n <variable name=\"invoke_007\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_bkm_005\"/>\n </knowledgeRequirement>\n <invocation>\n <literalExpression>\n <text>bkm_005</text>\n </literalExpression>\n <binding>\n <!-- correctly passes a number, but the named parameter is unknown - should be \'arg\' -->\n <parameter name=\"arg1\"/>\n <literalExpression>\n <text>123</text>\n </literalExpression>\n </binding>\n </invocation>\n </decision>\n \n <decision name=\"fd_001\" id=\"_fd_001\">\n <variable name=\"fd_001\"/>\n <context>\n <contextEntry>\n <variable name=\"fn\"/>\n <literalExpression>\n <text>function(arg: number) arg</text>\n </literalExpression>\n </contextEntry>\n <contextEntry>\n <literalExpression>\n <text>fn(10)</text>\n </literalExpression>\n </contextEntry>\n </context>\n </decision>\n \n <decision name=\"fd_002\" id=\"_fd_002\">\n <variable name=\"fd_002\"/>\n <context>\n <contextEntry>\n <variable name=\"fn\"/>\n <literalExpression>\n <text>function(arg: number) arg</text>\n </literalExpression>\n </contextEntry>\n <contextEntry>\n <literalExpression>\n <text>fn(\"foo\")</text>\n </literalExpression>\n </contextEntry>\n </context>\n </decision>\n \n <decision name=\"literal_001\" id=\"_literal_001\">\n <variable name=\"literal_001\" typeRef=\"number\"/>\n <literalExpression typeRef=\"number\">\n <text>5+5</text>\n </literalExpression>\n </decision>\n \n <decision name=\"literal_002\" id=\"_literal_002\">\n <variable name=\"literal_002\" typeRef=\"number\"/>\n <literalExpression typeRef=\"number\">\n <text>\"foo\"</text>\n </literalExpression>\n </decision>\n \n <decision name=\"literal_003\" id=\"_literal_003\">\n <variable name=\"literal_003\" typeRef=\"tNumberList\"/>\n <literalExpression typeRef=\"tNumberList\">\n <text>10</text>\n </literalExpression>\n </decision>\n \n <decision name=\"literal_004\" id=\"_literal_004\">\n <variable name=\"literal_004\" typeRef=\"tNumberList\"/>\n <literalExpression typeRef=\"tNumberList\">\n <text>\"foo\"</text>\n </literalExpression>\n </decision>\n \n <decision name=\"literal_005\" id=\"_literal_005\">\n <variable name=\"literal_005\" typeRef=\"number\"/>\n <literalExpression typeRef=\"number\">\n <text>[10]</text>\n </literalExpression>\n </decision>\n \n <decision name=\"literal_006\" id=\"_literal_006\">\n <variable name=\"literal_006\" typeRef=\"number\"/>\n <literalExpression typeRef=\"number\">\n <text>[\"foo\"]</text>\n </literalExpression>\n </decision>\n \n <!-- **************** -->\n \n <decisionService name=\"decisionService_001\" id=\"_decisionService_001\">\n <variable name=\"decisionService_001\" typeRef=\"tDS_001\"/>\n <!-- decision returns number, type expects string -->\n <outputDecision href=\"#_decision_ds_001\"/>\n </decisionService>\n \n <decision name=\"decision_ds_001\" id=\"_decision_ds_001\">\n <variable name=\"decision_ds_001\"/>\n <literalExpression>\n <text>1000</text>\n </literalExpression>\n </decision>\n \n <!-- **************** -->\n \n <decisionService name=\"decisionService_002\" id=\"_decisionService_002\">\n <!-- no output type defined so we can narrow assertion on the input coercion -->\n <variable name=\"decisionService_002\"/>\n <outputDecision href=\"#_decision_ds_002\"/>\n <inputData href=\"#_decisionService_002_input_1\"/>\n </decisionService>\n \n <decision name=\"decision_ds_002\" id=\"_decision_ds_002\">\n <variable name=\"decision_ds_002\"/>\n <informationRequirement>\n <requiredInput href=\"#_decisionService_002_input_1\"/>\n </informationRequirement>\n <literalExpression>\n <!-- echo the input value -->\n <text>decisionService_002_input_1</text>\n </literalExpression>\n </decision>\n \n <inputData name=\"decisionService_002_input_1\" id=\"_decisionService_002_input_1\">\n <variable name=\"decisionService_002_input_1\" typeRef=\"string\"/>\n </inputData>\n \n <!-- invoke DS from decision passing incorrect input type -->\n <decision name=\"ds_invoke_002_with_number\" id=\"_ds_invoke_002_with_number\">\n <variable name=\"ds_invoke_002_with_number\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_decisionService_002\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>decisionService_002(10)</text>\n </literalExpression>\n </decision>\n \n <!-- invoke DS from decision passing singleton string list -->\n <decision name=\"ds_invoke_002_with_singleton_list\" id=\"_ds_invoke_002_with_singleton_list\">\n <variable name=\"ds_invoke_002_with_singleton_list\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_decisionService_002\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>decisionService_002([\"foo\"])</text>\n </literalExpression>\n </decision>\n \n <!-- **************** -->\n <decisionService name=\"decisionService_003\" id=\"_decisionService_003\">\n <!-- no output type defined so we can narrow assertion on the input coercion -->\n <variable name=\"decisionService_003\"/>\n <outputDecision href=\"#_decision_ds_003\"/>\n <inputData href=\"#_decisionService_003_input_1\"/>\n </decisionService>\n \n <decision name=\"decision_ds_003\" id=\"_decision_ds_003\">\n <variable name=\"decision_ds_003\"/>\n <informationRequirement>\n <requiredInput href=\"#_decisionService_003_input_1\"/>\n </informationRequirement>\n <literalExpression>\n <!-- echo the input value -->\n <text>decisionService_003_input_1</text>\n </literalExpression>\n </decision>\n \n <inputData name=\"decisionService_003_input_1\" id=\"_decisionService_003_input_1\">\n <variable name=\"decisionService_003_input_1\" typeRef=\"tStringList\"/>\n </inputData>\n \n <!-- invoke DS from decision passing singleton string list -->\n <decision name=\"ds_invoke_003_with_string\" id=\"_ds_invoke_003_with_string\">\n <variable name=\"ds_invoke_003_with_string\"/>\n <knowledgeRequirement>\n <requiredKnowledge href=\"#_decisionService_003\"/>\n </knowledgeRequirement>\n <literalExpression>\n <text>decisionService_003(\"foo\")</text>\n </literalExpression>\n </decision>\n\n <decision name=\"decision_context_01\" id=\"_decision_context_01\">\n <variable name=\"decision_context_01\" typeRef=\"exactContextType\"/>\n <literalExpression>\n <text>context(entries: [{key:\"a\", value:1}, {key:\"b\", value:2}])</text>\n </literalExpression>\n </decision>\n\n <decision name=\"decision_context_02\" id=\"_decision_context_02\">\n <variable name=\"decision_context_02\" typeRef=\"superContextType\"/>\n <literalExpression>\n <text>context(entries: [{key:\"a\", value:1}, {key:\"b\", value:2}])</text>\n </literalExpression>\n </decision>\n\n <decision name=\"decision_context_03\" id=\"_decision_context_03\">\n <variable name=\"decision_context_03\" typeRef=\"otherContextType\"/>\n <literalExpression>\n <text>context(entries: [{key:\"a\", value:1}, {key:\"b\", value:2}])</text>\n </literalExpression>\n </decision>\n\n</definitions>\n";