我为您的平面文件创建了两个模式表示(不是平面文件模式,但它们足以用于说明)。
我从一个 biztalk 地图开始,它会在第一天为给定的 Company、Route 和 Prod 组合填充适当的值。我去了 xsl 以允许它循环通过一组已识别的组合来填充已识别组合的所有天数。
最好加载与模式和 xsl 一起提供的 .btm 以查看我所做的工作。我可以解释任何不清楚的事情。
可能值得注意的是,您可以整理解决方案,但我希望它能给您一个指导。
需要注意的两点:“day”节点仅在当天存在值时创建。您可以在 xsl 中更改它。而且,我使用了一个有效的日期时间进行测试(例如 26-09-2011),因此在确定您的日期是什么 DayOfWeek 时,您必须解析您的日期。
第一个架构:
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://BizTalk_Server_Project2.Schema1" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://BizTalk_Server_Project2.Schema1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Record">
<xs:complexType>
<xs:sequence>
<xs:element name="Location" type="xs:string" />
<xs:element name="Route" type="xs:string" />
<xs:element name="Prod" type="xs:string" />
<xs:element name="Company" type="xs:string" />
<xs:element name="Date" type="xs:string" />
<xs:element name="Amount" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
第二个架构:
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://BizTalk_Server_Project2.Schema2" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://BizTalk_Server_Project2.Schema2" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Record">
<xs:complexType>
<xs:sequence>
<xs:element name="Loc" type="xs:string" />
<xs:element name="Route" type="xs:string" />
<xs:element name="Pr" type="xs:string" />
<xs:element name="Company" type="xs:string" />
<xs:element name="Sun" type="xs:string" />
<xs:element name="Mon" type="xs:string" />
<xs:element name="Tue" type="xs:string" />
<xs:element name="Wed" type="xs:string" />
<xs:element name="Thurs" type="xs:string" />
<xs:element name="Friday" type="xs:string" />
<xs:element name="Sat" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
BizTalk 地图:
<?xml version="1.0" encoding="utf-16"?>
<mapsource Name="BizTalk Map" Version="2" BizTalkServerMapperTool_Version="3.0" XRange="100" YRange="420" OmitXmlDeclaration="Yes" TreatElementsAsRecords="No" OptimizeValueMapping="Yes" GenerateDefaultFixedNodes="Yes" PreserveSequenceOrder="No" IgnoreNamespacesForLinks="Yes" method="xml" CopyPIs="No" xmlVersion="1.0">
<SrcTree RootNode_Name="Root">
<Reference Location=".\Schema1.xsd" />
</SrcTree>
<TrgTree RootNode_Name="Root">
<Reference Location=".\Schema2.xsd" />
</TrgTree>
<ScriptTypePrecedence>
<CSharp Enabled="Yes" />
<ExternalAssembly Enabled="Yes" />
<VbNet Enabled="Yes" />
<JScript Enabled="Yes" />
<XsltCallTemplate Enabled="Yes" />
<Xslt Enabled="Yes" />
</ScriptTypePrecedence>
<TreeValues>
<TestValues />
<ConstantValues />
</TreeValues>
<CustomXSLT XsltPath=".\Map1.xsl" ExtObjXmlPath=".\Map1_extxml.xml" />
<Pages>
<Page Name="Page 1">
<Links>
<Link LinkID="22" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Date']" LinkTo="107" />
<Link LinkID="19" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Company']" LinkTo="106" />
<Link LinkID="16" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Prod']" LinkTo="105" />
<Link LinkID="14" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Route']" LinkTo="104" />
<Link LinkID="20" LinkFrom="106" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Company']" />
<Link LinkID="15" LinkFrom="104" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Route']" />
<Link LinkID="11" LinkFrom="103" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Loc']" />
<Link LinkID="10" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Location']" LinkTo="103" />
<Link LinkID="18" LinkFrom="102" LinkTo="106" />
<Link LinkID="13" LinkFrom="102" LinkTo="105" />
<Link LinkID="12" LinkFrom="102" LinkTo="104" />
<Link LinkID="9" LinkFrom="102" LinkTo="103" />
<Link LinkID="1" LinkFrom="98" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']" />
<Link LinkID="8" LinkFrom="101" LinkTo="102" />
<Link LinkID="6" LinkFrom="99" LinkTo="101" />
<Link LinkID="21" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Company']" LinkTo="100" />
<Link LinkID="3" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Route']" LinkTo="100" />
<Link LinkID="4" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Prod']" LinkTo="100" />
<Link LinkID="5" LinkFrom="100" LinkTo="99" />
<Link LinkID="24" LinkFrom="107" LinkTo="109" />
<Link LinkID="31" LinkFrom="109" LinkTo="117" />
<Link LinkID="38" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="117" />
<Link LinkID="30" LinkFrom="108" LinkTo="116" />
<Link LinkID="23" LinkFrom="107" LinkTo="108" />
<Link LinkID="37" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="116" />
<Link LinkID="33" LinkFrom="110" LinkTo="119" />
<Link LinkID="32" LinkFrom="112" LinkTo="118" />
<Link LinkID="34" LinkFrom="113" LinkTo="120" />
<Link LinkID="35" LinkFrom="114" LinkTo="121" />
<Link LinkID="36" LinkFrom="115" LinkTo="122" />
<Link LinkID="26" LinkFrom="107" LinkTo="110" />
<Link LinkID="25" LinkFrom="107" LinkTo="112" />
<Link LinkID="27" LinkFrom="107" LinkTo="113" />
<Link LinkID="28" LinkFrom="107" LinkTo="114" />
<Link LinkID="29" LinkFrom="107" LinkTo="115" />
<Link LinkID="39" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="118" />
<Link LinkID="40" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="119" />
<Link LinkID="41" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="120" />
<Link LinkID="42" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="121" />
<Link LinkID="43" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="122" />
<Link LinkID="17" LinkFrom="105" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Pr']" />
<Link LinkID="44" LinkFrom="116" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Sun']" />
<Link LinkID="45" LinkFrom="117" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Mon']" />
<Link LinkID="46" LinkFrom="118" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Tue']" />
<Link LinkID="47" LinkFrom="119" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Wed']" />
<Link LinkID="48" LinkFrom="120" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Thurs']" />
<Link LinkID="49" LinkFrom="121" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Friday']" />
<Link LinkID="50" LinkFrom="122" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Sat']" />
</Links>
<Functoids>
<Functoid FunctoidID="107" Functoid-FID="260" X-Cell="52" Y-Cell="194">
<Input-Parameters>
<Parameter Type="link" Value="22" linkIndex="0" Guid="7470c0bc-c75c-4ab5-99f2-250d7fe1e389" />
</Input-Parameters>
<ScripterCode>
<Script Language="CSharp">
<![CDATA[///*Uncomment the following code for a sample Inline C# function
//that concatenates two inputs. Change the number of parameters of
//this function to be equal to the number of inputs connected to this functoid.*/
public string dow(string myDate)
{
return DateTime.Parse(myDate).DayOfWeek.ToString();
}
]]>
</Script>
</ScripterCode>
</Functoid>
<Functoid FunctoidID="106" Functoid-FID="375" X-Cell="56" Y-Cell="193">
<Input-Parameters>
<Parameter Type="link" Value="18" linkIndex="0" Guid="87396644-e663-4615-9e42-67060259fb1a" />
<Parameter Type="link" Value="19" linkIndex="1" Guid="cc39c66f-59fd-427d-aefc-5c1195e6a72f" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="105" Functoid-FID="375" X-Cell="56" Y-Cell="191">
<Input-Parameters>
<Parameter Type="link" Value="13" linkIndex="0" Guid="691fde94-db0b-4f53-b2ee-ff8f8f980027" />
<Parameter Type="link" Value="16" linkIndex="1" Guid="04844567-8d00-44cd-9b90-89e5009c4269" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="104" Functoid-FID="375" X-Cell="56" Y-Cell="189">
<Input-Parameters>
<Parameter Type="link" Value="12" linkIndex="0" Guid="16e52083-f9c4-4563-980c-146f4621dab6" />
<Parameter Type="link" Value="14" linkIndex="1" Guid="58d9d487-43be-4e7a-a0b0-efbbae08d004" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="103" Functoid-FID="375" X-Cell="56" Y-Cell="187">
<Input-Parameters>
<Parameter Type="link" Value="9" linkIndex="0" Guid="230f2ff4-b9aa-4903-893b-90bd3fe49540" />
<Parameter Type="link" Value="10" linkIndex="1" Guid="5cc1c29a-7398-4005-ace7-4cbc4c176960" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="102" Functoid-FID="705" X-Cell="54" Y-Cell="186">
<Input-Parameters>
<Parameter Type="link" Value="8" linkIndex="0" Guid="b3777b48-0d39-499c-96c9-40ffdd0c8737" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="98" Functoid-FID="260" X-Cell="52" Y-Cell="182">
<Input-Parameters />
<ScripterCode>
<Script Language="CSharp">
<![CDATA[// declare global variables for Voucher number assignment
System.Collections.Generic.List<string> keyList =
new System.Collections.Generic.List<string>();
public void init(){}
]]>
</Script>
</ScripterCode>
</Functoid>
<Functoid FunctoidID="101" Functoid-FID="315" X-Cell="54" Y-Cell="184">
<Input-Parameters>
<Parameter Type="link" Value="6" linkIndex="0" Guid="4a5c621f-9f4f-4b1f-a81b-6dce03aa402a" />
<Parameter Type="constant" Value="true" linkIndex="1" Guid="5aafc712-0e6c-44be-baf8-c3a7d8806eb5" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="99" Functoid-FID="260" X-Cell="52" Y-Cell="184">
<Input-Parameters>
<Parameter Type="link" Value="5" linkIndex="0" Guid="bb64de45-0250-4d51-8ee3-4759d7812160" />
</Input-Parameters>
<ScripterCode>
<Script Language="CSharp">
<![CDATA[// Add invoice number to list if it doesn't already exist.
// increment voucher number if new invoice
public Boolean AddKeyToList(string key)
{
// if the Invoice number is not already in the List
if (!keyList.Contains(key))
{
// Add to list
keyList.Add(key);
return true;
}
return false;
}]]>
</Script>
</ScripterCode>
</Functoid>
<Functoid FunctoidID="100" Functoid-FID="107" X-Cell="44" Y-Cell="175">
<Input-Parameters>
<Parameter Type="link" Value="21" linkIndex="0" Guid="f630c6c2-b5c2-4c77-bf53-d25fdfb06b78" />
<Parameter Type="link" Value="3" linkIndex="1" Guid="f24d57bc-22d9-4390-bdf1-52ca16f9b45b" />
<Parameter Type="link" Value="4" linkIndex="2" Guid="87ee7e4f-374c-4343-aa68-0a5bf6fffac7" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="117" Functoid-FID="375" X-Cell="56" Y-Cell="195">
<Input-Parameters>
<Parameter Type="link" Value="31" linkIndex="0" Guid="4e5e0ad8-543e-4a41-b702-74d2d8356030" />
<Parameter Type="link" Value="38" linkIndex="1" Guid="c94e83a7-1220-4797-ac03-751e089e9a07" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="109" Functoid-FID="315" X-Cell="54" Y-Cell="195">
<Input-Parameters>
<Parameter Type="link" Value="24" linkIndex="0" Guid="c6998772-def3-4a8a-ae7d-0cdb947f95a4" />
<Parameter Type="constant" Value="Monday" linkIndex="1" Guid="64603dba-6df1-4b59-8968-62949ccc6759" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="108" Functoid-FID="315" X-Cell="54" Y-Cell="194">
<Input-Parameters>
<Parameter Type="link" Value="23" linkIndex="0" Guid="d44d97ba-b3d3-48cd-a3c9-7ce4726d35df" />
<Parameter Type="constant" Value="Sunday" linkIndex="1" Guid="75cf8619-0493-4aac-9f76-1a020d7fac0f" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="116" Functoid-FID="375" X-Cell="56" Y-Cell="194">
<Input-Parameters>
<Parameter Type="link" Value="30" linkIndex="0" Guid="c37bfe5c-9a5a-4b23-b300-16c942ba785b" />
<Parameter Type="link" Value="37" linkIndex="1" Guid="b02aab3d-6437-401c-9b06-bdf7c7d9c832" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="110" Functoid-FID="315" X-Cell="54" Y-Cell="197">
<Input-Parameters>
<Parameter Type="link" Value="26" linkIndex="0" Guid="1cd88b45-1667-416e-aeef-78cc599f3cc7" />
<Parameter Type="constant" Value="Wednesday" linkIndex="1" Guid="773c8e04-45a2-4d1e-983f-0b53745c038f" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="112" Functoid-FID="315" X-Cell="54" Y-Cell="196">
<Input-Parameters>
<Parameter Type="link" Value="25" linkIndex="0" Guid="599dfe5a-202b-49ee-a439-1276296501bd" />
<Parameter Type="constant" Value="Tuesday" linkIndex="1" Guid="bd4a7be3-b886-4cad-ab71-077b9cb507e0" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="113" Functoid-FID="315" X-Cell="54" Y-Cell="198">
<Input-Parameters>
<Parameter Type="link" Value="27" linkIndex="0" Guid="61d375df-85ad-49ef-8161-5c7908e7a1f9" />
<Parameter Type="constant" Value="Thursday" linkIndex="1" Guid="efb2d4af-52e1-41c3-8886-e8acbcf6f788" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="114" Functoid-FID="315" X-Cell="54" Y-Cell="199">
<Input-Parameters>
<Parameter Type="link" Value="28" linkIndex="0" Guid="84dc8167-ef26-41e2-8cbc-92bc09d9b513" />
<Parameter Type="constant" Value="Friday" linkIndex="1" Guid="bdea9f04-4e4d-458a-bc6c-5a7d063a9128" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="115" Functoid-FID="315" X-Cell="54" Y-Cell="200">
<Input-Parameters>
<Parameter Type="link" Value="29" linkIndex="0" Guid="ad77c87e-b292-4b10-9932-7fc9f5981869" />
<Parameter Type="constant" Value="Saturday" linkIndex="1" Guid="d811f065-8eed-4445-9356-fe5327b2c634" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="118" Functoid-FID="375" X-Cell="56" Y-Cell="196">
<Input-Parameters>
<Parameter Type="link" Value="32" linkIndex="0" Guid="32cd8143-b582-4d49-a048-84e54cd42bea" />
<Parameter Type="link" Value="39" linkIndex="1" Guid="95fffee4-6451-442d-9a60-19a297388aa5" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="119" Functoid-FID="375" X-Cell="56" Y-Cell="197">
<Input-Parameters>
<Parameter Type="link" Value="33" linkIndex="0" Guid="d222802d-a84e-4cdd-8920-48623705506d" />
<Parameter Type="link" Value="40" linkIndex="1" Guid="9be3005a-d0e2-454d-b970-a350becadf5d" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="120" Functoid-FID="375" X-Cell="56" Y-Cell="198">
<Input-Parameters>
<Parameter Type="link" Value="34" linkIndex="0" Guid="bfe3b4b6-c52a-4762-9c2c-b868d7f203fd" />
<Parameter Type="link" Value="41" linkIndex="1" Guid="f7eed5ef-5156-4d4b-8cc9-42a5c5773ec2" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="121" Functoid-FID="375" X-Cell="56" Y-Cell="199">
<Input-Parameters>
<Parameter Type="link" Value="35" linkIndex="0" Guid="d2765ea5-a23c-43f5-834e-ec5e610f1114" />
<Parameter Type="link" Value="42" linkIndex="1" Guid="ccf811b9-31bc-4cb2-9d00-fa784c357575" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="122" Functoid-FID="375" X-Cell="56" Y-Cell="200">
<Input-Parameters>
<Parameter Type="link" Value="36" linkIndex="0" Guid="63f4d89b-0487-434a-97a7-137b70376867" />
<Parameter Type="link" Value="43" linkIndex="1" Guid="2f302981-121d-4825-8251-6b9bd0123278" />
</Input-Parameters>
</Functoid>
</Functoids>
</Page>
</Pages>
</mapsource>
在生成的 xsl 中,将<Root>
元素替换为:
<ns0:Root>
<xsl:for-each select="Record">
<xsl:variable name="var:v1" select="userCSharp:StringConcat(string(Company/text()) , string(Route/text()) , string(Prod/text()))" />
<xsl:variable name="var:v6" select="string(Company/text())" />
<xsl:variable name="var:v7" select="string(Route/text())" />
<xsl:variable name="var:v8" select="string(Prod/text())" />
<xsl:variable name="var:v9" select="userCSharp:StringConcat($var:v6 , $var:v7 , $var:v8)" />
<xsl:variable name="var:v25" select="string(Date/text())" />
<!-- Only create a new record node in the destibation if the Keys are different! -->
<xsl:variable name="varCurrentCompany" select="string(Company/text())" />
<xsl:variable name="varPrevCompany" select="string(preceding-sibling::Record[1]/Company/text())" />
<xsl:variable name="varCurrentRoute" select="string(Route/text())" />
<xsl:variable name="varPrevRoute" select="string(preceding-sibling::Record[1]/Route/text())" />
<xsl:variable name="varCurrentProd" select="string(Prod/text())" />
<xsl:variable name="varPrevProd" select="string(preceding-sibling::Record[1]/Prod/text())" />
<!-- do this by checking if the current record is different to the previous record -->
<xsl:if test="($varCurrentCompany!=$varPrevCompany) or ($varCurrentRoute!=$varPrevRoute) or ($varCurrentProd!=$varPrevProd)">
<Record>
<xsl:variable name="var:v2" select="userCSharp:AddKeyToList(string($var:v1))" />
<xsl:variable name="var:v3" select="userCSharp:LogicalEq(string($var:v2) , "true")" />
<xsl:variable name="var:v4" select="userCSharp:LogicalNot(string($var:v3))" />
<xsl:if test="string($var:v4)='true'">
<xsl:variable name="var:v5" select="Location/text()" />
<Loc>
<xsl:value-of select="$var:v5" />
</Loc>
</xsl:if>
<xsl:variable name="var:v10" select="userCSharp:AddKeyToList(string($var:v9))" />
<xsl:variable name="var:v11" select="userCSharp:LogicalEq(string($var:v10) , "true")" />
<xsl:variable name="var:v12" select="userCSharp:LogicalNot(string($var:v11))" />
<xsl:if test="string($var:v12)='true'">
<xsl:variable name="var:v13" select="Route/text()" />
<Route>
<xsl:value-of select="$var:v13" />
</Route>
</xsl:if>
<xsl:variable name="var:v14" select="userCSharp:AddKeyToList(string($var:v9))" />
<xsl:variable name="var:v15" select="userCSharp:LogicalEq(string($var:v14) , "true")" />
<xsl:variable name="var:v16" select="userCSharp:LogicalNot(string($var:v15))" />
<xsl:if test="string($var:v16)='true'">
<xsl:variable name="var:v17" select="Prod/text()" />
<Pr>
<xsl:value-of select="$var:v17" />
</Pr>
</xsl:if>
<xsl:variable name="var:v18" select="userCSharp:AddKeyToList(string($var:v9))" />
<xsl:variable name="var:v19" select="userCSharp:LogicalEq(string($var:v18) , "true")" />
<xsl:variable name="var:v20" select="userCSharp:LogicalNot(string($var:v19))" />
<xsl:if test="string($var:v20)='true'">
<xsl:variable name="var:v21" select="Company/text()" />
<Company>
<xsl:value-of select="$var:v21" />
</Company>
</xsl:if>
</Record>
</xsl:if>
<xsl:variable name="var:v22" select="userCSharp:dow(string(Date/text()))" />
<xsl:variable name="var:v23" select="userCSharp:LogicalEq(string($var:v22) , "Sunday")" />
<xsl:if test="string($var:v23)='true'">
<xsl:variable name="var:v24" select="Amount/text()" />
<Sun>
<xsl:value-of select="$var:v24" />
</Sun>
</xsl:if>
<xsl:variable name="var:v26" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v27" select="userCSharp:LogicalEq(string($var:v26) , "Monday")" />
<xsl:if test="string($var:v27)='true'">
<xsl:variable name="var:v28" select="Amount/text()" />
<Mon>
<xsl:value-of select="$var:v28" />
</Mon>
</xsl:if>
<xsl:variable name="var:v29" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v30" select="userCSharp:LogicalEq(string($var:v29) , "Tuesday")" />
<xsl:if test="string($var:v30)='true'">
<xsl:variable name="var:v31" select="Amount/text()" />
<Tue>
<xsl:value-of select="$var:v31" />
</Tue>
</xsl:if>
<xsl:variable name="var:v32" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v33" select="userCSharp:LogicalEq(string($var:v32) , "Wednesday")" />
<xsl:if test="string($var:v33)='true'">
<xsl:variable name="var:v34" select="Amount/text()" />
<Wed>
<xsl:value-of select="$var:v34" />
</Wed>
</xsl:if>
<xsl:variable name="var:v35" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v36" select="userCSharp:LogicalEq(string($var:v35) , "Thursday")" />
<xsl:if test="string($var:v36)='true'">
<xsl:variable name="var:v37" select="Amount/text()" />
<Thurs>
<xsl:value-of select="$var:v37" />
</Thurs>
</xsl:if>
<xsl:variable name="var:v38" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v39" select="userCSharp:LogicalEq(string($var:v38) , "Friday")" />
<xsl:if test="string($var:v39)='true'">
<xsl:variable name="var:v40" select="Amount/text()" />
<Friday>
<xsl:value-of select="$var:v40" />
</Friday>
</xsl:if>
<xsl:variable name="var:v41" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v42" select="userCSharp:LogicalEq(string($var:v41) , "Saturday")" />
<xsl:if test="string($var:v42)='true'">
<xsl:variable name="var:v43" select="Amount/text()" />
<Sat>
<xsl:value-of select="$var:v43" />
</Sat>
</xsl:if>
</xsl:for-each>
<xsl:variable name="var:v44" select="userCSharp:init()" />
<xsl:value-of select="$var:v44" />
</ns0:Root>