Search code examples
ibm-cloudbusiness-rules

unknownElement in XML response for ruleset executed by Business Rules on Bluemix


I executed a ruleset on the Business Rules service on Bluemix. The XML response has an element called "unknownElement" which is not in the WSDL definition.

< DecisionServiceResponse xmlns="http://www.ilog.com/rules/DecisionService" >

< ilog.rules.outputString > ... < /ilog.rules.outputString >

< ilog.rules.firedRulesCount>  ... < /ilog.rules.firedRulesCount >

< yourResponse xmlns="..">

      < unknownElement xmlns="" >

       ...

      < /unknownElement >

< /yourResponse >

< /DecisionServiceResponse >


Solution

  • This occurred because I defined the ruleset parameter type in the XML schema (XSD), but did not declare a global element of that type.

    The type of the parameter, Foo, was defined in the XSD XOM as follows:

    < schema xmlns=.. xmlns:tns=.. targetNamespace=.. >
    
       < complexType name="Foo">
    
          < attribute name="bar" type="string"></attribute >
    
       < /complexType >
    
    < /schema >
    

    To resolve the problem, I added a global element for that type in the XSD:

    < schema xmlns=.. xmlns:tns=.. targetNamespace=.. >
    
       < element name="FooElement" type="tns:Foo"></element >
    
       < complexType name="Foo">
    
          < attribute name="bar" type="string"></attribute >
    
       < /complexType >
    
    < /schema >