Class KnowledgeBuilderHelper


  • public class KnowledgeBuilderHelper
    extends Object
    Provides helper methods for working with JAXB and a Knowledgebase, it takes care of the Classpath issues when mapping against internal type declarations.

    This api is experimental and thus the classes and the interfaces returned are subject to change.

    • Constructor Detail

      • KnowledgeBuilderHelper

        public KnowledgeBuilderHelper()
    • Method Detail

      • addXsdModel

        public static String[] addXsdModel​(org.kie.api.io.Resource resource,
                                           KnowledgeBuilder kbuilder,
                                           com.sun.tools.xjc.Options xjcOpts,
                                           String systemId)
                                    throws IOException
        Generates pojos for a given XSD using XJC and adds them to the specified KnowlegeBase.
         Options xjcOpts = new Options();
         xjcOpts.setSchemaLanguage( Language.XMLSCHEMA );
         KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        
         String[] classNames = KnowledgeBuilderHelper.addXsdModel( ResourceFactory.newClassPathResource( "order.xsd",
                                                                                                         getClass() ),
                                                                   kbuilder,
                                                                   xjcOpts,
                                                                   "xsd" );
         
        Parameters:
        resource - The resource to the XSD model
        kbuilder - the KnowledgeBuilder where the generated .class files will be placed
        xjcOpts - XJC Options
        systemId - XJC systemId
        Returns:
        Returns an array of class names that where generated by the XSD.
        Throws:
        IOException
      • newJAXBContext

        public static JAXBContext newJAXBContext​(String[] classNames,
                                                 org.kie.api.KieBase kbase)
                                          throws JAXBException
        Creates a new JAXBContext, from which the Marshaller and Unmarshaller can be created, which are used by the Transformer pipeline stage.
        Parameters:
        classNames - An array of class names that can be resolved by this JAXBContext
        kbase - The KnowledgeBase
        Returns:
        The JAXB Context
        Throws:
        JAXBException