DMN-02003无法转换输入流中的决策

时间:2019-08-15 21:35:56

标签: sax camunda camunda-modeler decision-model-notation

我正在使用一个Controller创建一个简单的spring-boot RESTful Web API。我按照Camunda的Github上的示例嵌入了DMN引擎。

我在Camunda Modeler上创建了DMN定义。我将其上传到了Camunda DMN Simulator,并且效果很好。

但是,当我从Web API内部读取时,出现以下错误。

DMN-02003 Unable to transform decisions from input stream.

深入研究时,会发现以下内部异常。

org.xml.sax.SAXException: Error: URI=null Line=2: cvc-elt.1: Cannot find the declaration of element ‘definitions’.

这是我正在使用的示例代码。

dmnEngine = DmnEngineConfiguration.createDefaultDmnEngineConfiguration().buildEngine();

InputStream fileStream = getClass()
        .getClassLoader().getResourceAsStream("trade.dmn");

dmnDecision = dmnEngine.parseDecision("category_decision", fileStream);

我已经仔细检查了InputStream是否已正确加载,它从头到尾显示了XML定义。

这是我的.dmn文件

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/DMN/20151101/dmn.xsd" xmlns:biodi="http://bpmn.io/schema/dmn/biodi/1.0" id="categoryDecision" name="Category Decisions" namespace="http://camunda.org/schema/1.0/dmn" exporter="Camunda Modeler" exporterVersion="3.0.1">
  <decision id="category_decision" name="Category Decision">
    <extensionElements>
      <biodi:bounds x="235" y="81" width="180" height="80" />
      <biodi:edge source="InputData_0rvbel4">
        <biodi:waypoints x="229" y="291" />
        <biodi:waypoints x="288" y="161" />
      </biodi:edge>
    </extensionElements>
    <informationRequirement>
      <requiredInput href="#InputData_0rvbel4" />
    </informationRequirement>
    <decisionTable id="decisionTable_1">
      <input id="InputClause_1dib2hg" label="Size">
        <inputExpression id="LiteralExpression_1sesq6j" typeRef="integer">
          <text>tradeSize</text>
        </inputExpression>
      </input>
      <output id="output_1" label="Category" name="category" typeRef="string" />
      <rule id="DecisionRule_12mnt4v">
        <inputEntry id="UnaryTests_0ujys6t">
          <text>&gt;100</text>
        </inputEntry>
        <outputEntry id="LiteralExpression_1dc690t">
          <text>"large"</text>
        </outputEntry>
      </rule>
      <rule id="DecisionRule_1e7c7uc">
        <inputEntry id="UnaryTests_0r8085z">
          <text>&lt;100</text>
        </inputEntry>
        <outputEntry id="LiteralExpression_0x2p9cr">
          <text>"small"</text>
        </outputEntry>
      </rule>
      <rule id="DecisionRule_0rmcb11">
        <inputEntry id="UnaryTests_10xi3qk">
          <text>100</text>
        </inputEntry>
        <outputEntry id="LiteralExpression_1awferl">
          <text>"small"</text>
        </outputEntry>
      </rule>
    </decisionTable>
  </decision>
  <inputData id="InputData_0rvbel4" name="Size of Trade">
    <extensionElements>
      <biodi:bounds x="156" y="291" width="125" height="45" />
    </extensionElements>
  </inputData>
</definitions>

谢谢!

0 个答案:

没有答案