Constant dmntk_examples::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</definitions>\n";