Reading attributes and elements from multiple nested xml namespace

Hi,

Trying to read following data from an xml column in a table. Please help!

Input table with data and sample query:

USE TEMPDB;
GO

DECLARE
	@tempxmlnamespace1 TABLE(
	id int IDENTITY(1 , 1) , 
	xdata xml);

INSERT INTO @tempxmlnamespace1(
	xdata)
VALUES(
'<BookSet xmlns:p1="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow" Description="{p1:Null}" Name="DueCharges" ChainingBehavior="Full">
  <BookSet.Books>
    <Book Priority="2147483647" ReevaluationBehavior="Always" Description="{p1:Null}" Active="True" Name="EXPIRY">
      <Book.Condition>
        <BookExpressionCondition Name="{p1:Null}">
          <BookExpressionCondition.Expression>
            <ns0:CodeMethodInvokeExpression xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
              <ns0:CodeMethodInvokeExpression.Parameters>
                <ns0:CodePrimitiveExpression>
                  <ns0:CodePrimitiveExpression.Value>
                    <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                  </ns0:CodePrimitiveExpression.Value>
                </ns0:CodePrimitiveExpression>
              </ns0:CodeMethodInvokeExpression.Parameters>
              <ns0:CodeMethodInvokeExpression.Method>
                <ns0:CodeMethodReferenceExpression MethodName="Contains">
                  <ns0:CodeMethodReferenceExpression.TargetObject>
                    <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                      <ns0:CodePropertyReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodePropertyReferenceExpression.TargetObject>
                    </ns0:CodePropertyReferenceExpression>
                  </ns0:CodeMethodReferenceExpression.TargetObject>
                </ns0:CodeMethodReferenceExpression>
              </ns0:CodeMethodInvokeExpression.Method>
            </ns0:CodeMethodInvokeExpression>
          </BookExpressionCondition.Expression>
        </BookExpressionCondition>
      </Book.Condition>
      <Book.ThenActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeAssignStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeAssignStatement.Left>
                <ns0:CodePropertyReferenceExpression PropertyName="LibraryChargeDeadline">
                  <ns0:CodePropertyReferenceExpression.TargetObject>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="get_Item">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                              <ns0:CodePropertyReferenceExpression.TargetObject>
                                <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                                  <ns0:CodePropertyReferenceExpression.TargetObject>
                                    <ns0:CodeThisReferenceExpression />
                                  </ns0:CodePropertyReferenceExpression.TargetObject>
                                </ns0:CodePropertyReferenceExpression>
                              </ns0:CodePropertyReferenceExpression.TargetObject>
                            </ns0:CodePropertyReferenceExpression>
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                  </ns0:CodePropertyReferenceExpression.TargetObject>
                </ns0:CodePropertyReferenceExpression>
              </ns0:CodeAssignStatement.Left>
              <ns0:CodeAssignStatement.Right>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="Parse">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeAssignStatement.Right>
            </ns0:CodeAssignStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ThenActions>
      <Book.ElseActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeExpressionStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeExpressionStatement.Expression>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeFieldReferenceExpression FieldName="MinValue">
                      <ns0:CodeFieldReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeFieldReferenceExpression.TargetObject>
                    </ns0:CodeFieldReferenceExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="AddDueCharge">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeExpressionStatement.Expression>
            </ns0:CodeExpressionStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ElseActions>
    </Book>
    <Book Priority="2147483646" ReevaluationBehavior="Always" Description="{p1:Null}" Active="True" Name="EXPIRY_1">
      <Book.Condition>
        <BookExpressionCondition Name="{p1:Null}">
          <BookExpressionCondition.Expression>
            <ns0:CodeMethodInvokeExpression xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
              <ns0:CodeMethodInvokeExpression.Parameters>
                <ns0:CodePrimitiveExpression>
                  <ns0:CodePrimitiveExpression.Value>
                    <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                  </ns0:CodePrimitiveExpression.Value>
                </ns0:CodePrimitiveExpression>
              </ns0:CodeMethodInvokeExpression.Parameters>
              <ns0:CodeMethodInvokeExpression.Method>
                <ns0:CodeMethodReferenceExpression MethodName="Contains">
                  <ns0:CodeMethodReferenceExpression.TargetObject>
                    <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                      <ns0:CodePropertyReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodePropertyReferenceExpression.TargetObject>
                    </ns0:CodePropertyReferenceExpression>
                  </ns0:CodeMethodReferenceExpression.TargetObject>
                </ns0:CodeMethodReferenceExpression>
              </ns0:CodeMethodInvokeExpression.Method>
            </ns0:CodeMethodInvokeExpression>
          </BookExpressionCondition.Expression>
        </BookExpressionCondition>
      </Book.Condition>
      <Book.ThenActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeAssignStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeAssignStatement.Left>
                <ns0:CodePropertyReferenceExpression PropertyName="EmployeeChargeDeadline">
                  <ns0:CodePropertyReferenceExpression.TargetObject>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="get_Item">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                              <ns0:CodePropertyReferenceExpression.TargetObject>
                                <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                                  <ns0:CodePropertyReferenceExpression.TargetObject>
                                    <ns0:CodeThisReferenceExpression />
                                  </ns0:CodePropertyReferenceExpression.TargetObject>
                                </ns0:CodePropertyReferenceExpression>
                              </ns0:CodePropertyReferenceExpression.TargetObject>
                            </ns0:CodePropertyReferenceExpression>
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                  </ns0:CodePropertyReferenceExpression.TargetObject>
                </ns0:CodePropertyReferenceExpression>
              </ns0:CodeAssignStatement.Left>
              <ns0:CodeAssignStatement.Right>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="Parse">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeAssignStatement.Right>
            </ns0:CodeAssignStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ThenActions>
      <Book.ElseActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeExpressionStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeExpressionStatement.Expression>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeFieldReferenceExpression FieldName="MinValue">
                      <ns0:CodeFieldReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeFieldReferenceExpression.TargetObject>
                    </ns0:CodeFieldReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="AddDueCharge">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeExpressionStatement.Expression>
            </ns0:CodeExpressionStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ElseActions>
    </Book>
    <Book Priority="2147483645" ReevaluationBehavior="Always" Description="{p1:Null}" Active="True" Name="EXPIRY_2">
      <Book.Condition>
        <BookExpressionCondition Name="{p1:Null}">
          <BookExpressionCondition.Expression>
            <ns0:CodeMethodInvokeExpression xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
              <ns0:CodeMethodInvokeExpression.Parameters>
                <ns0:CodePrimitiveExpression>
                  <ns0:CodePrimitiveExpression.Value>
                    <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                  </ns0:CodePrimitiveExpression.Value>
                </ns0:CodePrimitiveExpression>
              </ns0:CodeMethodInvokeExpression.Parameters>
              <ns0:CodeMethodInvokeExpression.Method>
                <ns0:CodeMethodReferenceExpression MethodName="Contains">
                  <ns0:CodeMethodReferenceExpression.TargetObject>
                    <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                      <ns0:CodePropertyReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodePropertyReferenceExpression.TargetObject>
                    </ns0:CodePropertyReferenceExpression>
                  </ns0:CodeMethodReferenceExpression.TargetObject>
                </ns0:CodeMethodReferenceExpression>
              </ns0:CodeMethodInvokeExpression.Method>
            </ns0:CodeMethodInvokeExpression>
          </BookExpressionCondition.Expression>
        </BookExpressionCondition>
      </Book.Condition>
      <Book.ThenActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeAssignStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeAssignStatement.Left>
                <ns0:CodePropertyReferenceExpression PropertyName="LibraryCommitmentDeadline">
                  <ns0:CodePropertyReferenceExpression.TargetObject>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="get_Item">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                              <ns0:CodePropertyReferenceExpression.TargetObject>
                                <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                                  <ns0:CodePropertyReferenceExpression.TargetObject>
                                    <ns0:CodeThisReferenceExpression />
                                  </ns0:CodePropertyReferenceExpression.TargetObject>
                                </ns0:CodePropertyReferenceExpression>
                              </ns0:CodePropertyReferenceExpression.TargetObject>
                            </ns0:CodePropertyReferenceExpression>
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                  </ns0:CodePropertyReferenceExpression.TargetObject>
                </ns0:CodePropertyReferenceExpression>
              </ns0:CodeAssignStatement.Left>
              <ns0:CodeAssignStatement.Right>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="Parse">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeAssignStatement.Right>
            </ns0:CodeAssignStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ThenActions>
      <Book.ElseActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeExpressionStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeExpressionStatement.Expression>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeFieldReferenceExpression FieldName="MinValue">
                      <ns0:CodeFieldReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeFieldReferenceExpression.TargetObject>
                    </ns0:CodeFieldReferenceExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="AddDueCharge">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeExpressionStatement.Expression>
            </ns0:CodeExpressionStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ElseActions>
    </Book>
    <Book Priority="2147483644" ReevaluationBehavior="Always" Description="{p1:Null}" Active="True" Name="EXPIRY_3">
      <Book.Condition>
        <BookExpressionCondition Name="{p1:Null}">
          <BookExpressionCondition.Expression>
            <ns0:CodeMethodInvokeExpression xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
              <ns0:CodeMethodInvokeExpression.Parameters>
                <ns0:CodePrimitiveExpression>
                  <ns0:CodePrimitiveExpression.Value>
                    <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                  </ns0:CodePrimitiveExpression.Value>
                </ns0:CodePrimitiveExpression>
              </ns0:CodeMethodInvokeExpression.Parameters>
              <ns0:CodeMethodInvokeExpression.Method>
                <ns0:CodeMethodReferenceExpression MethodName="Contains">
                  <ns0:CodeMethodReferenceExpression.TargetObject>
                    <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                      <ns0:CodePropertyReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodePropertyReferenceExpression.TargetObject>
                    </ns0:CodePropertyReferenceExpression>
                  </ns0:CodeMethodReferenceExpression.TargetObject>
                </ns0:CodeMethodReferenceExpression>
              </ns0:CodeMethodInvokeExpression.Method>
            </ns0:CodeMethodInvokeExpression>
          </BookExpressionCondition.Expression>
        </BookExpressionCondition>
      </Book.Condition>
      <Book.ThenActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeAssignStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeAssignStatement.Left>
                <ns0:CodePropertyReferenceExpression PropertyName="EmployeeCommitmentDeadline">
                  <ns0:CodePropertyReferenceExpression.TargetObject>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="get_Item">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodePropertyReferenceExpression PropertyName="DueCharges">
                              <ns0:CodePropertyReferenceExpression.TargetObject>
                                <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                                  <ns0:CodePropertyReferenceExpression.TargetObject>
                                    <ns0:CodeThisReferenceExpression />
                                  </ns0:CodePropertyReferenceExpression.TargetObject>
                                </ns0:CodePropertyReferenceExpression>
                              </ns0:CodePropertyReferenceExpression.TargetObject>
                            </ns0:CodePropertyReferenceExpression>
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                  </ns0:CodePropertyReferenceExpression.TargetObject>
                </ns0:CodePropertyReferenceExpression>
              </ns0:CodeAssignStatement.Left>
              <ns0:CodeAssignStatement.Right>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="Parse">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeAssignStatement.Right>
            </ns0:CodeAssignStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ThenActions>
      <Book.ElseActions>
        <BookStatementAction>
          <BookStatementAction.CodeDomStatement>
            <ns0:CodeExpressionStatement xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" LinePragma="{p1:Null}">
              <ns0:CodeExpressionStatement.Expression>
                <ns0:CodeMethodInvokeExpression>
                  <ns0:CodeMethodInvokeExpression.Parameters>
                    <ns0:CodePrimitiveExpression>
                      <ns0:CodePrimitiveExpression.Value>
                        <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">EXPIRY</ns1:String>
                      </ns0:CodePrimitiveExpression.Value>
                    </ns0:CodePrimitiveExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">0.0</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeMethodInvokeExpression>
                      <ns0:CodeMethodInvokeExpression.Parameters>
                        <ns0:CodePrimitiveExpression>
                          <ns0:CodePrimitiveExpression.Value>
                            <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">06/11/2014 23:59:00</ns1:String>
                          </ns0:CodePrimitiveExpression.Value>
                        </ns0:CodePrimitiveExpression>
                      </ns0:CodeMethodInvokeExpression.Parameters>
                      <ns0:CodeMethodInvokeExpression.Method>
                        <ns0:CodeMethodReferenceExpression MethodName="Parse">
                          <ns0:CodeMethodReferenceExpression.TargetObject>
                            <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                          </ns0:CodeMethodReferenceExpression.TargetObject>
                        </ns0:CodeMethodReferenceExpression>
                      </ns0:CodeMethodInvokeExpression.Method>
                    </ns0:CodeMethodInvokeExpression>
                    <ns0:CodeFieldReferenceExpression FieldName="MinValue">
                      <ns0:CodeFieldReferenceExpression.TargetObject>
                        <ns0:CodeTypeReferenceExpression Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                      </ns0:CodeFieldReferenceExpression.TargetObject>
                    </ns0:CodeFieldReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Parameters>
                  <ns0:CodeMethodInvokeExpression.Method>
                    <ns0:CodeMethodReferenceExpression MethodName="AddDueCharge">
                      <ns0:CodeMethodReferenceExpression.TargetObject>
                        <ns0:CodePropertyReferenceExpression PropertyName="DueChargeProcedureTarget">
                          <ns0:CodePropertyReferenceExpression.TargetObject>
                            <ns0:CodeThisReferenceExpression />
                          </ns0:CodePropertyReferenceExpression.TargetObject>
                        </ns0:CodePropertyReferenceExpression>
                      </ns0:CodeMethodReferenceExpression.TargetObject>
                    </ns0:CodeMethodReferenceExpression>
                  </ns0:CodeMethodInvokeExpression.Method>
                </ns0:CodeMethodInvokeExpression>
              </ns0:CodeExpressionStatement.Expression>
            </ns0:CodeExpressionStatement>
          </BookStatementAction.CodeDomStatement>
        </BookStatementAction>
      </Book.ElseActions>
    </Book>
  </BookSet.Books>
</BookSet>');


WITH XMLNAMESPACES(
'http://schemas.microsoft.com/winfx/2006/xaml' AS p1 , 
'http://schemas.microsoft.com/winfx/2006/xaml/workflow' AS p2 ,
'clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns0 ,
'clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns1)

		SELECT
			id , 
			col1.value('./@Name' , 'varchar(1024)')AS     Book_Name , 
			col1.value('./@Priority' , 'varchar(1024)')AS Book_Priority 
			--col1.value('(.)' , 'Varchar(1024)') , 
			--col1.query('(.)')
		FROM
			@tempxmlnamespace1 AS t
				OUTER APPLY t.xdata.nodes('/p2:BookSet/p2:BookSet.Books/p2:Book')AS tBook(col1);

Desired Output should look very much similar to following

id	Book_Name	Book_Priority	C1			C2
1	EXPIRY		2147483647	LibraryChargeDeadline	EXPIRY
1	EXPIRY		2147483647	LibraryChargeDeadline	06/11/2014 23:59
1	EXPIRY		2147483647	EmployeeChargeDeadline	EXPIRY
1	EXPIRY		2147483647	EmployeeChargeDeadline	06/11/2014 23:59
1	EXPIRY_1	2147483646	LibraryChargeDeadline	EXPIRY
1	EXPIRY_1	2147483646	LibraryChargeDeadline	06/11/2014 23:59
1	EXPIRY_1	2147483646	EmployeeChargeDeadline	EXPIRY
1	EXPIRY_1	2147483646	EmployeeChargeDeadline	06/11/2014 23:59
1	EXPIRY_2	2147483645	LibraryChargeDeadline	EXPIRY
1	EXPIRY_2	2147483645	LibraryChargeDeadline	06/11/2014 23:59
1	EXPIRY_2	2147483645	EmployeeChargeDeadline	EXPIRY
1	EXPIRY_2	2147483645	EmployeeChargeDeadline	06/11/2014 23:59
1	EXPIRY_3	2147483644	LibraryChargeDeadline	EXPIRY
1	EXPIRY_3	2147483644	LibraryChargeDeadline	06/11/2014 23:59
1	EXPIRY_3	2147483644	EmployeeChargeDeadline	EXPIRY
1	EXPIRY_3	2147483644	EmployeeChargeDeadline	06/11/2014 23:59

Problem is with this element and related attribute

"ns0:CodePropertyReferenceExpression PropertyName="

Due to its existence of on multiple level in the nested xml, it is returning unwanted data as well.

I have also provided a sample query. 

Question is how to read specific attribute "LibraryCommitmentDeadline" as mentioned in C1.

Any question, please let me know.

Thanks.

February 20th, 2015 9:27pm

Please post concise examples. Not the entire phone book..

Your query should look like this:

WITH XMLNAMESPACES ( 'http://schemas.microsoft.com/winfx/2006/xaml' AS p1 , 
						'http://schemas.microsoft.com/winfx/2006/xaml/workflow' AS p2 ,
						'clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns0 ,
						'clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns1 )
SELECT	id , 
		col1.value('./@Name' , 'varchar(1024)') AS Book_Name, 
		col1.value('./@Priority' , 'varchar(1024)') AS Book_Priority, 
		c1.value('.' , 'Varchar(1024)') 
FROM	@tempxmlnamespace1 AS t
	CROSS APPLY t.xdata.nodes('/p2:BookSet/p2:BookSet.Books/p2:Book') AS A ( col1 )
	OUTER APPLY col1.nodes('Book.ThenActions/BookStatementAction/BookStatementAction.CodeDomStatement/ns0:CodeAssignStatement/ns0:CodeAssignStatement.Left/ns0:CodePropertyReferenceExpression[@PropertyName="LibraryCommitmentDeadline"]') B ( c1 )
But you need to find the correct XPath yourself. This XML is so weird, that I need to ask: Where does this XML come from? Why is it stored in a database? Why don't you work with a cleaner XML?

Free Windows Admin Tool Kit Click here and download it now
February 21st, 2015 12:27am

As I wrote: Post a concise example..
February 22nd, 2015 7:23am

I looked at this, but I can't understand why you want the expected results in your initial post. The XML document has four <Book> nodes, each one with the Property and Name attributes listed in your expect results. But the string LibraryChargeDeadline only appears for the first book in the document and the string EmployeeChargeDeadline only appears with the second book. Yet, you want then to be listed for all books in the output.

The date 06/11/2014 23:59 appears eight times in the XML document, twice per Book node, but there is no apparent connection to the node with LibraryChargeDeadline.

I could help if you clarified in words what you are looking for.

Free Windows Admin Tool Kit Click here and download it now
February 22nd, 2015 12:38pm

Well that's what I am tasked to solve a real problem so lets fix it and then argue on design later.

Its always a good practice to provide a working or fully formatted code to understand the problem.

I have tried many variations but its not working as expected. That the whole point of this thread. 

WITH XMLNAMESPACES ( 'http://schemas.microsoft.com/winfx/2006/xaml' AS p1 , 
						'http://schemas.microsoft.com/winfx/2006/xaml/workflow' AS p2 ,
						'clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns0 ,
						'clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns1 )
SELECT	id ,
		xdata, 
		col1.value('./@Name' , 'varchar(1024)') AS Book_Name, 
		col1.value('./@Priority' , 'varchar(1024)') AS Book_Priority, 
		col1.query('.') as BookSet_Child_Node,
		col1.value('(//@PropertyName)[3]', 'Varchar(1024)'),
		c1.value('(//@PropertyName)[3]', 'Varchar(1024)'),
		c1.value('./@PropertyName' , 'Varchar(1024)'),
		c1.value('.', 'Varchar(1024)'),
		c1.query('.') 
FROM	@tempxmlnamespace1 AS t
	CROSS APPLY t.xdata.nodes('/p2:BookSet/p2:BookSet.Books/p2:Book') AS A ( col1 )
	----OUTER APPLY col1.nodes('Book.ThenActions/BookStatementAction/BookStatementAction.CodeDomStatement/ns0:CodeAssignStatement/ns0:CodeAssignStatement.Left/ns0:CodePropertyReferenceExpression[@PropertyName="LibraryCommitmentDeadline"]') B ( c1 )
		OUTER APPLY col1.nodes('./p2/ns0:CodeAssignStatement/ns0:CodeAssignStatement.Left/ns0:CodePropertyReferenceExpression[@PropertyName="LibraryCommitmentDeadline"]') B ( c1 )

I still think that multiple nested name spaces are an issue here. If you check output of column BookSet_Chile_Node then it refers p2 upto next namespace.

Plus I do not want to read specific attribute value one by one e.g. (@PropertyName="LibraryCommitmentDeadline") which i can do anyway with "//[3]" but all different attributes on that same location under different parent element.

Any other thoughts please?

Thanks and Cheers.

PS: Hi Moderator, you referenced few LINQ and .Net related questions and articles. So does this mean it is not possible with TSQL? Thanks. 


  • Edited by Asam, Muhammad Sunday, February 22, 2015 11:29 AM further explanation
February 22nd, 2015 2:24pm

Yes i have confused the desired output a bit. Apologies please.

Actually a book has different priority queue for employee and borrower and multiple expiry dates within one data are possible. So according to policy person with minimum/oldest priority will get the book.

I want to read different elements and attributes from this nested namespace xml into a flat de-normalized table - no matters parent node repeating with all child. 


so ideally i am in following elements and attributes from different locations into a table and in different columns.

id, (Bookset => DueCharges), (Book => Priority and Name), (Book.ThenActions => ns0:CodePropertyReferenceExpression PropertyName="LibraryChargeDeadline"), then all elements at ns1 in different row and previous parent columns will repear e.g Row 1: (ns1:String => EXPIRY ), Row 2(ns1:String => 06/11/2014 23:59:00)

So lets correct the output with slight modifications:

id	Book_Name	Book_Priority		C1					C2
1	EXPIRY		2147483647		LibraryChargeDeadline			EXPIRY
1	EXPIRY		2147483647		LibraryChargeDeadline			06/11/2014 23:59

1	EXPIRY_1	2147483646		EmployeeChargeDeadline			EXPIRY
1	EXPIRY_1	2147483646		EmployeeChargeDeadline			06/11/2014 23:59

1	EXPIRY_2	2147483645		LibraryCommitmentDeadline		EXPIRY
1	EXPIRY_2	2147483645		LibraryCommitmentDeadline		06/11/2014 23:59

1	EXPIRY_3	2147483644		EmployeeCommitmentDeadline		EXPIRY
1	EXPIRY_3	2147483644		EmployeeCommitmentDeadline		06/11/2014 23:59

Unfortunately, in this example all dates are same but luckily book_priority is changing.

Does this make some some sense now?

Thank you.

Free Windows Admin Tool Kit Click here and download it now
February 22nd, 2015 5:04pm

But are you specifically looking for the strings LibraryChargeDeadline etc? Are all these four Book nodes about the same book with different priorities?

And what does mscorlib has to do with the books? :-)

February 22nd, 2015 6:05pm

Yes it is one book with different priorities. 

Consider if all dates are different then main objective is to populate Columns C1 and C2 according to their related values.

mscorlib :-) .... this also is just an example and a subset of actual huge XML of real issue. simple find/replace :-)

Here is another way to manually look into child using "//" but this will not make correct parent child relationship. So its like i extracting data from xml and put into a parent-child related tables with PK-FK but initially huge de-normalized table with repeated parents will be fine.

WITH XMLNAMESPACES ( 
'http://schemas.microsoft.com/winfx/2006/xaml' AS p1 , 
'http://schemas.microsoft.com/winfx/2006/xaml/workflow' AS p2 ,
'clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns0 ,
'clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS ns1 
						)
SELECT	id ,
		xdata, 
		col1.value('./@Name' , 'varchar(1024)') AS Book_Name, 
		col1.value('./@Priority' , 'varchar(1024)') AS Book_Priority, 
		col1.query('.') as BookSet_Child_Node,

		col1.value('(//@PropertyName)[3]', 'Varchar(1024)'),
		col1.value('(//ns1:String)[3]', 'varchar(1024)')	A6,
		--col1.value('(//ns1:String)[7]', 'varchar(1024)') A7,

		col1.value('(//@PropertyName)[9]', 'Varchar(1024)'),
		col1.value('(//ns1:String)[10]', 'varchar(1024)') A10,
		--col1.value('(//ns1:String)[14]', 'varchar(1024)') A14,


		col1.value('(//@PropertyName)[15]', 'Varchar(1024)'),
		col1.value('(//ns1:String)[17]', 'varchar(1024)') A17,
		--col1.value('(//ns1:String)[21]', 'varchar(1024)') A21,

		col1.value('(//@PropertyName)[21]', 'Varchar(1024)'),
		col1.value('(//ns1:String)[24]', 'varchar(1024)') A24,
		--col1.value('(//ns1:String)[28]', 'varchar(1024)') A28,

		c1.value('./@PropertyName' , 'Varchar(1024)'),
		c1.value('.', 'Varchar(1024)'),
		c1.query('.') 
FROM	@tempxmlnamespace1 AS t
	CROSS APPLY t.xdata.nodes('/p2:BookSet/p2:BookSet.Books/p2:Book') AS A ( col1 )
	----OUTER APPLY col1.nodes('Book.ThenActions/BookStatementAction/BookStatementAction.CodeDomStatement/ns0:CodeAssignStatement/ns0:CodeAssignStatement.Left/ns0:CodePropertyReferenceExpression[@PropertyName="LibraryCommitmentDeadline"]') B ( c1 )
		OUTER APPLY col1.nodes('./p2/ns0:CodeAssignStatement/ns0:CodeAssignStatement.Left/ns0:CodePropertyReferenceExpression[@PropertyName="LibraryCommitmentDeadline"]') B ( c1 )

Any further question, please let me know.

Thanks,


Free Windows Admin Tool Kit Click here and download it now
February 22nd, 2015 6:18pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics