Ensemble XML Virtual Document Development Guide
Defining Rule Sets for XML Virtual Documents
This chapter discusses how to create rule sets for XML virtual documents, for use in business processes
. It discusses the following topics:
To create a rule set for XML virtual documents:
Optionally load the applicable XML schema or schemas into Ensemble.
For any rule constraint in the rule set, use the following values:
For Schema Category
, optionally select an XML schema that you have previously loaded into Ensemble.
Leave this value blank if you do not have or do not want to use the schema.
For Document Name
, optionally select a document type defined in that schema.
Create rules as usual, using the XML property paths described earlier in this book
. There are two basic scenarios:
If you have loaded the schema and have specified the target document type, the Expression Editor provides assistance when you start typing Document
Notice that these property paths are schema-dependent paths, although you could edit them to be DOM-style paths instead, if those are needed for some reason.
If you have not loaded the schema and specified the document type, you must type the path manually. You can use either schema-dependent paths or DOM-style paths.
After you save and compile the rule set, it is available for use in a business process.
The following shows the class definition for a simple rule set. This rule set has one rule that uses a DOM-style path to check the <MRN>
element of the <Patient>
document. Depending on the returned value, the rule routes the message to either FileOut1 or FileOut2. Notice that in this case, the rule constraint does not refer to the XML schema or type.
Class Demo09.MyRules Extends Ens.Rule.Definition
Parameter RuleAssistClass = "EnsLib.MsgRouter.VDocRuleAssist";
XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]
<ruleDefinition alias="" context="EnsLib.MsgRouter.VDocRoutingEngine">
<ruleSet name="" effectiveBegin="" effectiveEnd="">
<rule name="CheckMRN" disabled="false">
<constraint name="msgClass" value="EnsLib.EDI.XML.Document"></constraint>
<send transform="" target="FileOut1"></send>
<send transform="" target="FileOut2"></send>