<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>BizTalk Messages &#187; Business Rules Engine</title>
	<atom:link href="http://biztalkmessages.vansplunteren.net/tag/business-rules-engine/feed/" rel="self" type="application/rss+xml" />
	<link>http://biztalkmessages.vansplunteren.net</link>
	<description>Randal van Splunteren&#039;s experiences with BizTalk Server and other MS technologies.</description>
	<lastBuildDate>Tue, 07 Feb 2012 08:01:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='biztalkmessages.vansplunteren.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>BizTalk Messages &#187; Business Rules Engine</title>
		<link>http://biztalkmessages.vansplunteren.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://biztalkmessages.vansplunteren.net/osd.xml" title="BizTalk Messages" />
	<atom:link rel='hub' href='http://biztalkmessages.vansplunteren.net/?pushpress=hub'/>
		<item>
		<title>More on untyped messages and Business Rules Engine</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 13:19:05 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=642</guid>
		<description><![CDATA[I a previous post I described a way to deal with untyped messages in the Business Rule Engine. This allows for flexibility in scenarios where you want to use a single set of rules (lets call it an “untyped policy”) on multiple types of messages. Untyped policies work great when tested directly in the Business [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=642&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I a previous <a href="http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/" target="_blank">post</a> I described a way to deal with untyped messages in the Business Rule Engine. This allows for flexibility in scenarios where you want to use a single set of rules (lets call it an “untyped policy”) on multiple types of messages.</p>
<p>Untyped policies work great when tested directly in the Business Rules Composer interface or when executed from .Net code. Unfortunately I stumbled across a nice issue when I wanted to call the rules from an orchestration using the call rules shape.</p>
<p>In my first design of the orchestration I received a message of type System.Xml.XmlDocument. After that I used a call rules shape to execute the policy. Because this is an untyped policy it will only accept a message of System.Xml.XmlDocument as input.</p>
<p> <a href="http://biztalkmessages.files.wordpress.com/2010/03/image9.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb9.png?w=260&#038;h=253" border="0" alt="image" width="260" height="253" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image10.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb10.png?w=260&#038;h=198" border="0" alt="image" width="260" height="198" /></a></p>
<p>Easy! Well, not exactly. While testing this orchestration I did not encounter an exception but found out my rule also did not fire. I enabled rule tracking and saw that my message was not asserted as a fact into the BRE. The tracked information was ‘fact not recognized’.</p>
<p>I tried some things to fix this without success. I ended up viewing the generated C# code for the orchestration and noticed a difference in the code generated for the call rules shape when using untyped and typed policies. For typed policies a new instance of Microsoft.RuleEngine.TypedXmlDocument is created  as a fact wrapper around the orchestration message. This TypedXmlDocument is then passed on to the BRE. For untyped policies this is different. There is no TypedXmlDocument created and the XmlDocument message is passed directly on to the BRE.</p>
<p>So in pseudo C# code, for a typed policy:</p>
<p><pre class="brush: csharp;">
typedXDoc = new Microsoft.RuleEngine.TypedXmlDocument(&quot;MessageType”, (System.Xml.XmlDocument)orchestrationMessage);
policy.Execute(typedXDoc);
</pre></p>
<p>for an untyped policy the code looks like this:</p>
<p><pre class="brush: csharp;">
policy.Execute((System.Xml.XmlDocument)orchestrationMessage);
</pre></p>
<p>The obvious difference between the two is that the first uses a ‘TypedXmlDocument’ instance to wrap the message. I expected the XLANG code generator to do the same for the untyped version but that is not the case. So what does this mean? Does this mean untyped policies are not supported? Or at least not in orchestrations? Is the only option to use code in an expression shape or helper class to execute untyped policies from within an orchestration?</p>
<p>Because I was completely stuck here I decided to ask BRE (and BizTalk) guru Charles Young for help. </p>
<p>It turned out that I had to use the special ‘Any’ schema to solve this. As Charles explained to me there are two ways of working with untyped messages in BizTalk. One is the famous XmlDocument approach, the other one is the (undocumented) ‘Any’ schema.</p>
<p>One of the differences between the XmlDocument and ‘Any’ schema is that the latter is treated as a schema type by BizTalk. This means the XLANG code generator will wrap it inside a TypedXmlDocument for a rules call. This exactly like the way it works for a typed policy.</p>
<p>The only two things I had to do was change were the message type from ‘XmlDocument’ to ‘Any’ and accordingly the policy.</p>
<p>This is a picture of the revised orchestration.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image11.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb11.png?w=260&#038;h=253" border="0" alt="image" width="260" height="253" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image12.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb12.png?w=260&#038;h=198" border="0" alt="image" width="260" height="198" /></a></p>
<p>The changes needed in the policy are described in a rewritten version of <a href="http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/" target="_blank">the original post</a>. You can find it <a href="http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/" target="_blank">here</a>.</p>
<p>A demo solution around this can be downloaded from <a href="http://cid-2b880e94db699632.skydrive.live.com/self.aspx/Public/BizTalk%20Samples/UntypedBRE.zip" target="_blank">here</a>. It contains two orchestrations. One which uses the XMLDocument approach without the rules getting fired. The other using the Any approch with the rules getting fired. Remember to change to paths in the binding file before deploying.</p>
<p>Full credits for this solution go to <a href="http://geekswithblogs.net/cyoung/Default.aspx" target="_blank">Charles Young</a>. Charles thanks for helping me out.</p>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/business-rules-engine/'>Business Rules Engine</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/642/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/642/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/642/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=642&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Untyped messages and Business Rules Engine (part 2)</title>
		<link>http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 11:14:41 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>
		<category><![CDATA[Orchestrations]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=612</guid>
		<description><![CDATA[This is a follow up post to my previous post on this topic. The method described in that post doesn’t seem to work when the policy is called from an orchestration. For more background information see this blogpost. I this post I will use the exact same sample as in the previous post. These are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=612&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a follow up post to <a href="http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/" target="_blank">my previous post on this topic</a>. The method described in that post doesn’t seem to work when the policy is called from an orchestration. For more background information see <a href="http://biztalkmessages.vansplunteren.net/2010/03/04/more-on-untyped-messages-and-business-rules-engine/" target="_blank">this blogpost</a>.</p>
<p>I this post I will use the exact same sample as in the previous post. These are the schemas used:</p>
<p><pre class="brush: xml; auto-links: false;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;

xmlns=&quot;http://UntypedBRE.FirstSchema&quot;
targetNamespace='http://UntypedBRE.FirstSchema'

xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  &lt;xs:element name=&quot;FirstSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;

</pre></p>
<p> </p>
<p><pre class="brush: xml; auto-links: false;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;
xmlns=&quot;http://UntypedBRE.SecondSchema&quot;
targetNamespace='http://UntypedBRE.SecondSchema'
xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  &lt;xs:element name=&quot;SecondSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre></p>
<p> </p>
<p><pre class="brush: xml; auto-links: false;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;

xmlns=&quot;http://UntypedBRE.ThirdSchema&quot;
targetNamespace='http://UntypedBRE.ThirdSchema'

xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  &lt;xs:element name=&quot;ThirdSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;

</pre></p>
<p>In my sample policy I want to check the ‘FirstName’ element. If the value is equal to ‘John’ I want to fill the ‘IsJohn’ element with value ‘yes’. The policy (and single rule) should work for all the above schemas.</p>
<p>The problem is that mentioned schemas belong to a different namespace and have a different rood node, hence in BizTalk terms have a different message type. Because XML schemas facts in the BRE are by default tightly coupled to a specific schema the consequence is that those facts can only operate on a single type of message.</p>
<p>In order to make this generic you have to do the following:</p>
<p><strong><span style="text-decoration:underline;">1. Add one of the schemas to the Facts Explorer in the BRE</span></strong></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb.png?w=260&#038;h=230" border="0" alt="image" width="260" height="230" /></a></p>
<p><strong><span style="text-decoration:underline;">2. Make the schema general</span></strong></p>
<p>As you can see the Document Type resembles the type of the schema I added. To make this generic I change this value to ‘Microsoft.XLANGs.BaseTypes.Any’. This will make sure that if I use a fact from this schema in a rule it will not be typed to this schema but will be generic:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image1.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb1.png?w=260&#038;h=229" border="0" alt="image" width="260" height="229" /></a></p>
<p><strong><span style="text-decoration:underline;">3. Create the rule</span></strong></p>
<p>In this step I create the rule. The facts will be filled in later.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image2.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb2.png?w=260&#038;h=164" border="0" alt="image" width="260" height="164" /></a></p>
<p><strong><span style="text-decoration:underline;">4. Modify the XML facts</span></strong></p>
<p>In the rule I need to evaluate the ‘FirstName’ fact and optionally set the ‘IsJohn’ fact. Because I want this to work on all schemas I need to define the facts in a generic way. If I click on the ‘FirstName’ fact I can see the xpath statements that point to this fact in the property pane:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image3.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb3.png?w=260&#038;h=202" border="0" alt="image" width="260" height="202" /></a></p>
<p>The ‘Xpath Field’ and ‘Xpath Selector’ properties are directly referring to ‘FirstSchema’ root node and namespace. I change the values to make them generic also:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image4.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb4.png?w=260&#038;h=197" border="0" alt="image" width="260" height="197" /></a></p>
<p>Note that I’m using ‘self::node()’ here. I described this trick before <a href="http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/">here</a>.</p>
<p>Now the XML fact is no longer pointing to a specific namespace or root node. It just points to a ‘FirstName’ node somewhere in Xml message.</p>
<p>There are of course other possible values for ‘Xpath selector’ and ‘Xpath Field’ to solve this. It all depends on the schemas. If for example the facts you need all have the same parent node you can make the ‘Xpath selector’ select the parent node and the ‘Xpath Field’ select the ‘FirstName’ element.</p>
<p>I do the same for the fact I want to update in the action of the rule:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image5.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb5.png?w=260&#038;h=210" border="0" alt="image" width="260" height="210" /></a></p>
<p><strong><span style="text-decoration:underline;">5. Complete the rule by adding the facts</span></strong></p>
<p>Finally I can drag the XML facts from the Facts Explorer to my rule to complete the condition and create a new action. Like this:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image6.png" target="_blank"><img style="display:inline;border-width:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb6.png?w=260&#038;h=115" border="0" alt="image" width="260" height="115" /></a></p>
<p>You can see that the both the condition and the action are not referring (anymore) to any specific schema  but instead to any schema that has ‘FirstName’  and ‘IsJohn’  elements.</p>
<p>Testing the rule with instances from two different schemas shows that this works:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image7.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb7.png?w=260&#038;h=125" border="0" alt="image" width="260" height="125" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2010/03/image8.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb8.png?w=260&#038;h=128" border="0" alt="image" width="260" height="128" /></a></p>
<p>One thing to note about this is that the way I changed the xpath statements for the Xml facts comes with a performance penalty. Using things like ‘//*…….’.  will make the engine go through the whole xml tree which is less efficient then using the original full xpath statement. So if performance is a strict requirement be careful using techniques like these.</p>
<p>Another thing is that I do not check for the existence of the nodes first. The policy will crash when an message is processed that does not contain on of the nodes used in the rule.</p>
<br /> Tagged: <a href='http://biztalkmessages.vansplunteren.net/tag/biztalk/'>BizTalk</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/business-rules-engine/'>Business Rules Engine</a>, <a href='http://biztalkmessages.vansplunteren.net/tag/orchestrations/'>Orchestrations</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/612/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=612&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2010/03/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Untyped messages and Business Rules Engine</title>
		<link>http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 09:54:09 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=540</guid>
		<description><![CDATA[This blogpost has been superseded by a new version. See: http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/ The other day one of my BizTalk buddies asked me if I knew a way to process different messages by the same policy in the Business Rules Engine (BRE). In other words is it possible to create some sort of generic policy that can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=540&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><span style="color:#ff0000;">This blogpost has been superseded by a new version. See: </span><a href="http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/"><span style="color:#ff0000;">http://biztalkmessages.vansplunteren.net/2010/03/04/untyped-messages-and-business-rules-engine-part-2/</span></a></em></p>
<p>The other day one of my BizTalk buddies asked me if I knew a way to process different messages by the same policy in the Business Rules Engine (BRE). In other words is it possible to create some sort of generic policy that can process different types of messages?</p>
<p>In his scenario the schemas had some fields in common and he needed those fields to be evaluated and optionally set in a single BRE policy.</p>
<p>Of course you can make a policy that depends on different schemas and add rules for each schema. The bad thing about that is that you will get multiple copies of almost the same rule which might lead to a maintenance nightmare.</p>
<p>I created a small sample to show how this can be achieved in a single policy and single rule. Below are three very basic schemas I used in this sample:</p>
<p><pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;&lt;a href=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;&gt;http://schemas.microsoft.com/BizTalk/2003&lt;/a&gt;&quot; xmlns=&quot;&lt;a href=&quot;http://UntypedBRE.FirstSchema&quot;&gt;http://UntypedBRE.FirstSchema&lt;/a&gt;&quot; targetNamespace=&quot;&lt;a href=&quot;http://UntypedBRE.FirstSchema&quot;&gt;http://UntypedBRE.FirstSchema&lt;/a&gt;&quot; xmlns:xs=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&quot;&gt;
  &lt;xs:element name=&quot;FirstSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;

</pre></p>
<p> </p>
<p><pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;&lt;a href=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;&gt;http://schemas.microsoft.com/BizTalk/2003&lt;/a&gt;&quot; xmlns=&quot;&lt;a href=&quot;http://UntypedBRE.SecondSchema&quot;&gt;http://UntypedBRE.SecondSchema&lt;/a&gt;&quot; targetNamespace=&quot;&lt;a href=&quot;http://UntypedBRE.SecondSchema&quot;&gt;http://UntypedBRE.SecondSchema&lt;/a&gt;&quot; xmlns:xs=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&quot;&gt;
  &lt;xs:element name=&quot;SecondSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre></p>
<p> </p>
<p><pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
&lt;xs:schema xmlns:b=&quot;&lt;a href=&quot;http://schemas.microsoft.com/BizTalk/2003&quot;&gt;http://schemas.microsoft.com/BizTalk/2003&lt;/a&gt;&quot; xmlns=&quot;&lt;a href=&quot;http://UntypedBRE.ThirdSchema&quot;&gt;http://UntypedBRE.ThirdSchema&lt;/a&gt;&quot; targetNamespace=&quot;&lt;a href=&quot;http://UntypedBRE.ThirdSchema&quot;&gt;http://UntypedBRE.ThirdSchema&lt;/a&gt;&quot; xmlns:xs=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&quot;&gt;
  &lt;xs:element name=&quot;ThirdSchema&quot;&gt;
    &lt;xs:complexType&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name=&quot;FirstName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;LastName&quot; type=&quot;xs:string&quot; /&gt;
        &lt;xs:element name=&quot;IsJohn&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:element&gt;
&lt;/xs:schema&gt;
</pre></p>
<p>I my sample policy I want to check the ‘FirstName’ element. If the value is equal to ‘John’ I want to fill the ‘IsJohn’ element with value ‘yes’. The policy (and single rule) should work for all of the above schemas.</p>
<p>The problem is that mentioned schemas belong to a different namespace and have a different root node, hence in BizTalk terms have a different message type. Because XML schema facts in the BRE are by default tightly coupled to a specific schema the consequence is that those facts can only operate on single type of message.</p>
<p>In order to make this generic you have to do the following:</p>
<p><strong><span style="text-decoration:underline;">1. Add one of the schemas to the Facts Explorer in the BRE.</span></strong></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb.png?w=260&#038;h=233" border="0" alt="image" width="260" height="233" /></a></p>
<p><strong><span style="text-decoration:underline;">2. Make the schema ‘general’</span></strong></p>
<p>As you can see the Document Type resembles the type of the schema I added. To make this generic I change this value to ‘System.Xml.XmlDocument’. This will make sure that if I use a fact from this schema in a rule it will not be typed to this schema but will be generic.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image1.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb1.png?w=260&#038;h=232" border="0" alt="image" width="260" height="232" /></a></p>
<p><strong><span style="text-decoration:underline;">3. Create the rule</span></strong></p>
<p>In this step I create rule. The facts will be filled in later.</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image2.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb2.png?w=260&#038;h=164" border="0" alt="image" width="260" height="164" /></a></p>
<p><strong><span style="text-decoration:underline;">4. Modify the XML facts.</span></strong></p>
<p>In the rule I need to evaluate the ‘FirstName’ fact and optionally set the ‘IsJohn’ fact. Because I want this to work on all schemas I need to define the facts in a generic way. If I click on the ‘FirstName’ fact I can see the xpath statements that point to this fact in the property pane:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image3.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb3.png?w=260&#038;h=227" border="0" alt="image" width="260" height="227" /></a></p>
<p>The ‘Xpath Field’ and ‘Xpath Selector’ properties are directly referring to ‘FirstSchema’ root node and namespace. I change the values to make them generic also:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image4.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb4.png?w=260&#038;h=228" border="0" alt="image" width="260" height="228" /></a></p>
<p>Note that I’m using ‘self::node()’ here. I described this trick before <a href="http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/" target="_blank">here</a>.</p>
<p>Now the XML fact is no longer pointing to a specific namespace or root node. It just points to a ‘FirstName’ node somewhere in a Xml document.</p>
<p>There are of course other possible values for ‘XPath Selector’ and ‘XPath Field’ to solve this. It all depends on the schemas. If for example the facts you need all have the same parent node you can make the ‘XPath selector’ select the parent node and the ‘XPath Field’ select the ‘FirstName’ element.</p>
<p>I do the same for the fact I want to update in the action of the rule:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image5.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb5.png?w=260&#038;h=229" border="0" alt="image" width="260" height="229" /></a></p>
<p><strong><span style="text-decoration:underline;">5. Complete the rule by adding the facts.</span></strong></p>
<p>Finally I can drag the XML facts from the Facts Explorer to my rule to complete the condition and create a new action. Like this:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image6.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb6.png?w=260&#038;h=121" border="0" alt="image" width="260" height="121" /></a></p>
<p>You can see that the both the condition and the action are not referring (anymore) to any specific schema  but instead to any schema that has ‘FirstName’  and ‘IsJohn’  elements.</p>
<p>Testing the rule with instances from two different schemas shows that this works:</p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image7.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb7.png?w=260&#038;h=132" border="0" alt="image" width="260" height="132" /></a></p>
<p><a href="http://biztalkmessages.files.wordpress.com/2009/12/image8.png" target="_blank"><img style="display:inline;border:0;" title="image" src="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb8.png?w=260&#038;h=138" border="0" alt="image" width="260" height="138" /></a></p>
<p>One thing to note about this is that the way I changed the xpath statements for the Xml facts comes with a performance penalty. Using things like ‘//*…….’.  will make the engine go through the whole xml tree which is less efficient then using the original full xpath statement. So if performance is a strict requirement be careful using techniques like these.</p>
<p>Another thing is that I do not check for the existence of the nodes first. The policy will crash when an message is processed that does not contain on of the nodes used in the rule.</p>
<br /> Tagged: BizTalk, Business Rules Engine <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/540/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=540&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2009/12/22/untyped-messages-and-business-rules-engine/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2009/12/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Updating multiple nodes with different parents and hierarchical levels using the BizTalk BRE</title>
		<link>http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/</link>
		<comments>http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 06:30:24 +0000</pubDate>
		<dc:creator>Randal van Splunteren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Business Rules Engine]]></category>

		<guid isPermaLink="false">http://biztalkmessages.wordpress.com/?p=12</guid>
		<description><![CDATA[Oops, this must be the longest and worst blog post title you have ever seen. Let&#8217;s quickly make clear what I mean: Recently I needed to update multiple elements using a single rule in the Business Rule Engine (BRE). To most BizTalkers this is nothing special. The thing that complicated this particular scenario was that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=12&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="postText">
<p><span style="font-family:Arial;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg"></a>Oops, this must be the longest and worst blog post title you have ever seen. Let&#8217;s quickly make clear what I mean:</span></p>
<p><span style="font-family:Arial;">Recently I needed to update multiple elements using a single rule in the Business Rule Engine (BRE). To most BizTalkers this is nothing special. The thing that complicated this particular scenario was that the elements to update where in different hierarchical levels within the xml instance and thus had different parent nodes.</span></p>
<p><span style="font-family:Arial;">See the following XML and corresponding XSD instance for an example of this scenario:</span></p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">ns0:Customer </span><span style="font-size:10pt;color:#ff0000;">xmlns:ns0</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Name</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">John<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">12<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">34<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">56<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">20<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">78<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">10<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:xx-small;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">ns0:Customer</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></span></div>
<div style="line-height:normal;"> </div>
<p> </p>
<p> </p>
<p> </p>
<div></div>
<p><span style="font-size:10pt;color:#0000ff;line-height:115%;"></p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;?</span><span style="font-size:10pt;color:#a31515;">xml </span><span style="font-size:10pt;color:#ff0000;">version</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1.0</span>&#8220;<span style="color:#ff0000;">encoding</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">utf-16</span>&#8220;<span style="color:#0000ff;">?&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">xs:schema </span><span style="font-size:10pt;color:#ff0000;">xmlns:b</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://schemas.microsoft.com/BizTalk/2003</span>&#8221; <span style="color:#ff0000;">xmlns</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;"><span style="color:#ff0000;">targetNamespace</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8221; <span style="color:#ff0000;">xmlns:xs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">http://www.w3.org/2001/XMLSchema</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">name</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">Customer</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Name</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Discount</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">0</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Accounts</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">          &lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">              &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Account</span>&#8220;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;"> <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">_Account</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">              &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">0</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">SubAccounts</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                &lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                    &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">unbounded</span>&#8220;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;"> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">SubAccount</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">_Account</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  </span><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">              &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:element</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">          &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">        &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:element</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:element</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> </span><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">xs:complexType </span><span style="font-size:10pt;color:#ff0000;">name</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">_Account</span>&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">ID</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">xs:element </span><span style="font-size:10pt;color:#ff0000;">minOccurs</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">maxOccurs</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">1</span>&#8221; <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Discount</span>&#8221; <span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">xs:string</span>&#8220;<span style="color:#0000ff;"> /&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">    &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:sequence</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;"> &lt;/</span><span style="font-size:10pt;color:#a31515;">xs:complexType</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">xs:schema</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></div>
<div style="line-height:normal;"> </div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><span style="font-family:Arial;">As you can see, the Discount node in this instance is on a different level in the XML structure. Also it has a different parent  (in this case Customer, Account and SubAccount). Now let’s say we need a rule that updates ALL the Discount nodes that have a value of 10. Of course this could be done easily using three separate rules but that would be a bad solution and could be done more simply.<br />
When we drag and drop a new rule in the BRE based on the above schema. The condition of the rule looks something like this:</span></span></div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"></p>
<p style="line-height:normal;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a></p>
<p style="line-height:normal;"><span style="font-family:Arial;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"><img class="alignnone size-full wp-image-8" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg?w=450&#038;h=50" alt="" width="450" height="50" /></a></span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">the corresponding action would be:</span></p>
<p style="line-height:normal;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"><img class="alignnone size-full wp-image-13" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg?w=450" alt=""   /></a></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The problem is that, as the xpath statement indicates, this will only affect the Discount nodes directly under the root node. How do we adjust the role so that it will apply to all the Discount nodes in the XML instance?</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The solution is to change the XPath Selector and XPath Field properties of the schema. After that we rewrite the rule based on the adjusted values of those properties.</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The XPath selector:</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The value is by default set to: </span></p>
<p style="line-height:normal;"><span style="color:#000000;font-family:Courier New;">/*[local-name()='Customer' and namespace-uri()='http://Samples.BRE.Customer']</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">We change this to: </span></p>
<p style="line-height:normal;"><span style="color:#000000;font-family:Courier New;">//*[local-name()='Discount' and namespace-uri()='']</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">This will select all the Discount nodes on any level regardless of their parent.</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">Next we have to think of what to fill in for the Xpath Field property. The Xpath Selector now has the complete xpath statement to get to the desired node set. together the XPath Selector and XPath Field are used by the BRE to reference nodes, so ideally would like to leave the Xpath field empty and remove the default value &#8216;<span style="color:#000000;font-family:Courier New;">*[local-name()='Discount' and namespace-uri()='']</span>&#8216; but cannot because the BRE composer won&#8217;t allow an empty Xpath Field property. This means we need a statement that’s not empty and doesn&#8217;t affect the nodes selected by the XPath Selector. The &#8216;<span style="color:#000000;font-family:Courier New;">self::node()</span>&#8216; expression will solve this.</span></p>
<p style="line-height:normal;"><span style="font-family:Arial;">The figure below shows the modified values in the Business Rules Composer:</span></p>
<p style="line-height:normal;"> </p>
<p style="line-height:normal;"> <a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"><img class="alignnone size-full wp-image-7" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg?w=450&#038;h=709" alt="" width="450" height="709" /></a></p>
<p style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"><img class="alignnone size-full wp-image-10" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg?w=450" alt=""   /></a></span></p>
<p style="line-height:normal;"> </p>
<p style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><span style="font-family:Arial;"><span style="font-family:Arial;">After setting these properties, (re)drag the Discount element to the Conditions and Actions sections. The rule looks like this:</span><br />
</span></span></p>
<p> <a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg"></a><a href="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg"><img class="alignnone size-full wp-image-11" src="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg?w=450" alt=""   /></a></p>
<div><span style="color:#0000ff;"> </span></div>
<div><span style="color:#0000ff;"><span style="font-family:Arial;">Testing the rule in the Business Rule Composer shows that this in fact works:</span></span></div>
<p><span style="color:#0000ff;"> </p>
<p></span></span></div>
<div style="line-height:normal;">
<p><span style="font-family:Arial;">XML instance before BRE:</span> </p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">ns0:Customer </span><span style="font-size:10pt;color:#ff0000;">xmlns:ns0</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Name</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">John<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">12<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">34<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">56<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">20<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">78<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">10</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">ns0:Customer</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></div>
<div style="line-height:normal;"> </div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"><span style="font-family:Arial;">XML instance after BRE:</span></span></div>
<div style="line-height:normal;"> </div>
<div style="line-height:normal;"><span style="font-size:10pt;color:#0000ff;line-height:115%;"></p>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">&lt;</span><span style="font-size:10pt;color:#a31515;">ns0:Customer </span><span style="font-size:10pt;color:#ff0000;">xmlns:ns0</span><span style="font-size:10pt;color:#0000ff;">=</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">http://Samples.</span></span><span style="font-size:10pt;color:#0000ff;">BRE</span><span style="font-size:10pt;color:#0000ff;">.Customer</span><span style="font-size:10pt;">&#8220;<span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Name</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">John<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">12<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">Account</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">34<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">56<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">20<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Discount</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">ID</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><span style="font-size:10pt;">78<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">ID</span><span style="color:#0000ff;">&gt;</span></span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                        &lt;</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span><strong><span style="font-size:10pt;">40</span></strong><span style="font-size:10pt;color:#0000ff;">&lt;/</span><span style="font-size:10pt;color:#a31515;">Discount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">                  &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccount</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">            &lt;/</span><span style="font-size:10pt;color:#a31515;">SubAccounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<div style="line-height:normal;"><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;">      &lt;/</span><span style="font-size:10pt;color:#a31515;">Accounts</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></span></div>
<p><span style="font-family:Courier New;"><span style="font-size:10pt;color:#0000ff;line-height:115%;">&lt;/</span><span style="font-size:10pt;color:#a31515;line-height:115%;">ns0:Customer</span><span style="font-size:10pt;color:#0000ff;line-height:115%;">&gt;</span></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></div>
</div>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/biztalkmessages.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/biztalkmessages.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/biztalkmessages.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/biztalkmessages.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/biztalkmessages.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=biztalkmessages.vansplunteren.net&amp;blog=3912620&amp;post=12&amp;subd=biztalkmessages&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://biztalkmessages.vansplunteren.net/2008/06/11/updating-multiple-nodes-with-different-parents-and-hierarchical-levels-using-the-biztalk-bre/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">biztalkmessages</media:title>
		</media:content>

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_1.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_21.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_facts_explorer.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_3.jpg" medium="image" />

		<media:content url="http://biztalkmessages.files.wordpress.com/2008/06/bre_update_multi_nodes_rule_4.jpg" medium="image" />
	</item>
	</channel>
</rss>
