IMPORTANT:
this is not a Support Forum! Experienced users might answer from time to time questions posted here. If you need a professional and reliable answer, or if you want to report a bug, please contact Altova Support instead.

Profile: winkimjr2
About
User Name: winkimjr2
Forum Rank: Member
Real Name:
Location Maplewood USA
Occupation:
Interests:
Gender: None Specified
Statistics
Joined: Thursday, May 26, 2016
Last Visit: Thursday, August 8, 2019 1:39:02 PM
Number of Posts: 19
[0.11% of all post / 0.01 posts per day]
Avatar
Last 10 Posts
Topic: How do I add condition to if statement?
Posted: Wednesday, August 7, 2019 10:33:36 PM
I want to check if CompDate has an Op code =E or A
OR if TimeStampChange node is the only node with Op code =E
AND if there are no Op codes on any other child nodes?
i.e. CaseEvent\TimeStampChange Op="E" and there are no Op codes on any other child elements.

If statement will be True when TimeStampChange is the only node in CaseEvent that have Op code=E
If statement will also be true if CompDate Op code =E or A but when TimeStampChange has no Op code.

Here is the xml that I am reading

<CaseEvent Op="E">
<EventDate>08/06/2019</EventDate>
<Comment Op="E">no rain</Comment>
<Deleted>false</Deleted>
<RevDate Op="E">08/08/2020</RevDate>
<CompDate Op="E">08/06/2019</CompDate>
<TimestampChange Op="E">08/06/2019 07:11:28:317</TimestampChange>
<EventType Word="NOPERWELL">Personal</EventType>
</CaseEvent>


Here is my xslt code. I need help adding and condition to check if any other child nodes in CaseEvent have Op code

<xsl:if test="(@Op='E') and ((EventType/@Word='NOPERWELL') or (EventType/@Word='NORIGHTS')) and ((CompDate[@Op='A']) or (CompDate[@Op='E']) or ((TimestampChange[@Op='E']) and (//CaseEvent[not(@Op)]/*)))">
Topic: How do I get the first FamilyJudgement from xml doc?
Posted: Wednesday, July 27, 2016 2:41:18 PM
Thanks for your help
Topic: How do I get the first FamilyJudgement from xml doc?
Posted: Monday, July 25, 2016 9:41:25 PM
I would like to output the first FamilyJudgement from my xml document. How do I do it?

Expected output
[code xml]<FamilyJudgment judgmentKey="3928551">
<JudgmentEventTypeText>Custody order</JudgmentEventTypeText>
</FamilyJudgment>[/code]

xml document
[code xml]<?xml version="1.0" encoding="UTF-8"?>
<CaseNotification>
<CourtDecisionNotification>
<TriggeredDateTime>2016-07-12T15:05:45-05:00</TriggeredDateTime>
<NotificationEvent>CourtDecisionModified</NotificationEvent>
<FamilyJudgment judgmentKey="3928551">
<JudgmentEventTypeText>Custody order</JudgmentEventTypeText>
<JudgmentEventDate>2016-07-12</JudgmentEventDate>
<Custody>
<CustodyDescriptionText>Legal custody</CustodyDescriptionText>
</Custody>
</FamilyJudgment>
<FamilyJudgment judgmentKey="3928551">
<JudgmentEventTypeText>Custody order</JudgmentEventTypeText>
<JudgmentEventDate>2016-07-12</JudgmentEventDate>
<Custody>
<CustodyDescriptionText>Legal custody</CustodyDescriptionText>
</Custody>
</FamilyJudgment>
</CourtDecisionNotification>
</CaseNotification>[/code]
Topic: How do I use a variable to get PO number and ID?
Posted: Wednesday, July 20, 2016 3:36:14 PM
I am using a variable vPoID to determine the right ProtectionOrder. Then I am displaying that PO's @InternalProtectionOrderID.
I would also like to use the same variable to get that PO's ProtectionOrderNumber. How can I use the same variable to also get ProtectionOrderNumber?

I am getting the attribute internalProtectionID="2552"

How can I modify the this line of code so I can use the vPoID variable to get ProtectionOrderNumber?

Modify this line <xsl:attribute name="protectionOrderNumber"><xsl:value-of select="ProtectionOrderNumber"/></xsl:attribute>


Expected output
Code:
<NotificationEvent notificationType="ProtectionOrderHearing" internalProtectionOrderID="2552" protectionOrderNumber="1600330"/>


xslt code
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:mscef="courts.state.mn.us/extfun" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <xsl:if test="Integration/Case/SecurityGroup[not(contains(@Word,'SEAL'))] or not(Integration/Case/SecurityGroup)">
            <xsl:call-template name="ProtectionOrderHearing"/>
        </xsl:if>
    </xsl:template>
    <!--  -->
    <xsl:template name="ProtectionOrderHearing">
        <!--<xsl:if test="Integration/ControlPoint='SAVE-FAM-HEARING'">-->
        <xsl:if test="Integration/ControlPoint=('SAVE-FAM-HEARING') or ('SAVE-FAM-HEAR-CTS')">
            <xsl:if test="Integration/Case/CaseType/@Word='DMA'">
                <xsl:for-each select="Integration/Case">
                    <xsl:variable name="vFoundActivePO">
                        <xsl:for-each select="/Integration/ProtectionOrder[Deleted='false']">
                            <xsl:variable name="vControlPointTimestamp" select="mscef:formatDateTimeNumeric(string(/Integration/ControlPoint/@Timestamp))"/>
                            <xsl:variable name="vCurrentPoStatus" select="Statuses/Status[mscef:formatDateTimeNumeric(mscef:fixOdysseyTimestamp(string(TimestampCreate))) &lt;=$vControlPointTimestamp][1]/Type/@Word"/>
                            <xsl:if test="($vCurrentPoStatus ='SBJO') or ($vCurrentPoStatus='SBJOCOR')">HIT</xsl:if>
                        </xsl:for-each>
                    </xsl:variable>
                    <xsl:variable name="vFoundHearingTrigger">
                        <xsl:choose>
                            <xsl:when test="count(Hearing[@Op='A'])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing[@Op='D'])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing[(@Op='E') and (CancelledReason/@Op='E')])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing[(@Op='E') and (Setting/HearingDate/@Op='E')])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing[(@Op='E') and (Setting/CourtSessionBlock/StartTime/@Op='E')])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing/Setting[@Op='A'])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing[(@Op='E') and (Setting/RescheduledType/@Op='E')])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing[(@Op='E') and (Setting/CancelledReason/@Op='E')])>0">HIT</xsl:when>
                            <xsl:when test="count(Hearing[(@Op='E') and (Setting/CourtSessionBlock/StartTime/@Op='E')])>0">HIT</xsl:when>
                        </xsl:choose>
                    </xsl:variable>
                    <xsl:if test="(contains($vFoundHearingTrigger,'HIT')) and (contains($vFoundActivePO,'HIT'))">
                        <xsl:choose>
                            <xsl:when test="count(Hearing/Setting[not(Cancelled)])>0">
                                <xsl:for-each select="Hearing/Setting[not(Cancelled)]">
                                    <xsl:variable name="vCurrentTimestamp">
                                        <xsl:value-of select="mscef:formatDateTimeNumeric(string(/Integration/ControlPoint/@Timestamp))"/>
                                    </xsl:variable>
                                    <xsl:variable name="vControlPointTimestamp" select="mscef:formatDateTimeNumeric(string(/Integration/ControlPoint/@Timestamp))"/>
                                    <xsl:variable name="vPoID">
                                        <xsl:for-each select="//Integration/ProtectionOrder[Deleted='false']">
                                            <xsl:variable name="vCurrentPoStatus" select="Statuses/Status[mscef:formatDateTimeNumeric(mscef:fixOdysseyTimestamp(string(TimestampCreate))) &lt;=$vCurrentTimestamp][1]/Type/@Word"/>
                                            <xsl:if test="($vCurrentPoStatus ='SBJO') or ($vCurrentPoStatus='SBJOCOR')">
                                                <xsl:value-of select="@InternalProtectionOrderID"/>
                                            </xsl:if>
                                        </xsl:for-each>
                                    </xsl:variable>
                                    <NotificationEvent notificationType="ProtectionOrderHearing">
                                        <xsl:attribute name="internalProtectionOrderID"><xsl:value-of select="$vPoID"/></xsl:attribute>
                                        <xsl:attribute name="protectionOrderNumber"><xsl:value-of select="ProtectionOrderNumber"/></xsl:attribute>
                                    </NotificationEvent>
                                </xsl:for-each>
                            </xsl:when>
                            <xsl:otherwise>
                                <NotificationEvent notificationType="ProtectionOrderHearing">
                                    <xsl:attribute name="internalProtectionOrderID"><xsl:value-of select="//Integration/ProtectionOrder[Deleted='false'][count(Statuses/Status[(Type/@Word='SBJO') or (Type/@Word='SBJOCOR')])>0]/@InternalProtectionOrderID"/></xsl:attribute>
                                    <xsl:attribute name="protectionOrderNumber"><xsl:value-of select="//Integration/ProtectionOrder[Deleted='false'][count(Statuses/Status[(Current='true') and ((Type/@Word='SBJO') or (Type/@Word='SBJOCOR'))])>0]/ProtectionOrderNumber"/><xsl:value-of select="//Integration/ProtectionOrder[Deleted='false'][count(Statuses/Status[(Type/@Word='SBJO') or (Type/@Word='SBJOCOR')])>0]/ProtectionOrderNumber"/></xsl:attribute>
                                    <xsl:text>NoHearings</xsl:text>
                                </NotificationEvent>
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:if>
                </xsl:for-each>
            </xsl:if>
        </xsl:if>
    </xsl:template>
    <!--  -->
    <msxsl:script language="JScript" implements-prefix="mscef"><![CDATA[
        function formatDateTimeNumeric(sDate){
            if(sDate.length==0){
                return "";
            }
            else{
                var oDate=new Date(sDate);
                var str = oDate.getSeconds();
                return "" + oDate.getFullYear().toString() + padZeroes(oDate.getMonth() + 1,2) + padZeroes(oDate.getDate(),2) + padZeroes(oDate.getHours().toString(),2) + padZeroes(oDate.getMinutes(),2) + padZeroes(oDate.getSeconds(),2);              
            }
        }
        function currentDateTimeNumeric(){
                var oDate=new Date();
                var str = oDate.getSeconds();
                return "" + oDate.getFullYear().toString() + padZeroes(oDate.getMonth() + 1,2) + padZeroes(oDate.getDate(),2) + padZeroes(oDate.getHours().toString(),2) + padZeroes(oDate.getMinutes(),2) + padZeroes(oDate.getSeconds(),2);              
        }    
        
        function fixOdysseyTimestamp(sDate){
        /* Replace the ":" between seconds and miliseconds */
            if(sDate.length==0){
                return "";
            }
            else{
                var strParts1 = sDate.split(" ");
                var strTime = strParts1[1];
                var strParts2 = strTime.split(":");
                return strParts1[0] + " " + strParts2[0] + ":" + strParts2[1] + ":" + strParts2[2];
            }
        }
]]></msxsl:script>
</xsl:stylesheet>


xml document
Code:
<Integration xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:tsg="http://tsgweb.com" xmlns:IXML="http://tsgweb.com" xmlns:CMCodeQueryHelper="urn:CMCodeQueryHelper" PackageID="BCA PO Notification" MessageID="82119264" xmlns="">
    <ControlPoint Timestamp="7/14/2016 9:00:52 AM">SAVE-FAM-HEARING</ControlPoint>
    <Case>
        <FiledDate>07/14/2016</FiledDate>
        <CaseCategory>FAM</CaseCategory>
        <CaseType Word="DMA">Domestic Abuse</CaseType>
        <BaseCaseType>Civil Domestic Violence</BaseCaseType>
        <SecurityGroup Word="CONFPOR">Conf - Protective Order</SecurityGroup>
        <Active>true</Active>
        <Deleted>false</Deleted>
        <Assignment Current="true">
            <AssignmentDate>07/14/2016</AssignmentDate>
            <TimestampCreate>07/14/2016 08:56:32:707</TimestampCreate>
        </Assignment>
        <Hearing ID="175088126" InternalHearingEventID="1734552990">
            <HearingType Word="ADJ">Adjudicatory Hearing</HearingType>
            <HearingTypeBaseCaseCategory>Criminal</HearingTypeBaseCaseCategory>
            <HearingTypeBaseCaseCategory>Family</HearingTypeBaseCaseCategory>
            <TimestampCreate>07/14/2016 08:58:22:160</TimestampCreate>
        </Hearing>
        <Hearing ID="175088128" InternalHearingEventID="1734552992" Op="A">
            <HearingType Op="A" Word="OFP">Order for Protection Hearing</HearingType>
            <HearingTypeBaseCaseCategory>Family</HearingTypeBaseCaseCategory>
            <TimestampCreate Op="A">07/14/2016 09:00:52:680</TimestampCreate>
        </Hearing>
        </Case>
    <ProtectionOrder InternalProtectionOrderID="2551" xmlns:user="http://tylertechnologies.com">
        <Deleted>false</Deleted>
        <ProtectionOrderNumber>1600329</ProtectionOrderNumber>
        <Type Word="EXPARTE">Ex Parte Order for Protection</Type>
        <Statuses>
            <Status>
                <Current>true</Current>
                <Active>No</Active>
                <Date>07/14/2016</Date>
                <Type Word="SUPERSEDED">Superseded</Type>
                <TimestampCreate>07/14/2016 09:00:25:510</TimestampCreate>
            </Status>
    </ProtectionOrder>
    <ProtectionOrder InternalProtectionOrderID="2552" xmlns:user="http://tylertechnologies.com">
        <Deleted>false</Deleted>
        <ProtectionOrderNumber>1600330</ProtectionOrderNumber>
        <Type Word="EXPARTE">Ex Parte Order for Protection</Type>
        <Statuses>
            <Status>
                <Current>true</Current>
                <Active>Yes</Active>
                <Date>07/14/2016</Date>
                <Type Word="SBJO">Signed By Judicial Officer</Type>
                <TimestampCreate>07/14/2016 09:00:25:547</TimestampCreate>
            </Status>
        </Statuses>
    </ProtectionOrder>
</Integration>
Topic: How do I add exception to xslt?
Posted: Friday, July 15, 2016 9:05:01 PM
I resolved this.
Topic: How do I add exception to xslt?
Posted: Friday, July 15, 2016 1:51:45 PM
My xml example has the following transaction
Code:
<Transaction>
            <TransactionID>1639560337</TransactionID>
            <TransactionCommentText>Testing</TransactionCommentText>
            <TransactionTypeText>Adjustment</TransactionTypeText>
            <TransactionDate>2016-07-11T00:00:00</TransactionDate>
            <TransactionFeeDetail>
                <FeeDetailID>1650110685</FeeDetailID>
                <FeeDetailFeeCode>REST</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Restitution</FeeDetailFeeCodeText>
                <ChargeAmount>-500.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
            </TransactionFeeDetail>
        </Transaction>


So when this transaction type or other types that are not <TransactionTypeText>Credit</TransactionTypeText>, <TransactionTypeText>Disbursement</TransactionTypeText>, <TransactionTypeText>Payment</TransactionTypeText>, <TransactionTypeText>Charge</TransactionTypeText> are found, I want to get the amount from any element with non-zero amount. For this transaction type, the amount is from ChargerAmount element.
So the output would look like this
Code:
<FinancialTransaction>
        <TransactionID>1639560337</TransactionID>
        <TransactionTypeText>Adjustment</TransactionTypeText>
        <TransactionDate>2016-07-11</TransactionDate>
        <TransactionFeeDetail>
            <FeeDetailID>1650110685</FeeDetailID>
            <FeeDetailFeeCodeText code="REST">Restitution</FeeDetailFeeCodeText>
            <FeeDetailFeeAmount>-500</FeeDetailFeeAmount>
        </TransactionFeeDetail>
        <TransactionCommentText>Testing</TransactionCommentText>
        <TransactionPaymentCreditTypeText/>
    </FinancialTransaction>
Topic: How do I add exception to xslt?
Posted: Thursday, July 14, 2016 5:30:04 PM
I have 4 TransactionTypeText being handled by xslt code which include TransactionTypeText='Charge', TransactionTypeText='Payment', TransactionTypeText='Credit', TransactionTypeText='Disbursement'.
The problem is that, this code is not handling other types (TransactionTypeText) that are not one of the the 4 types.
When I try TransactionTypeText='Adjustment', I am getting an error Unknown transaction type Adjustment because I have an exception in my xslt code to handle TransactionTypeText when it is of type other than the 4.

So I would like to modify my code so that it can handle all types of TransactionTypeText.
The requirement is that, to handle (other) TransactionTypeText that are not of type Charge, Credit, Disbursement, Payment, use the following condition:
For TransactionTypeText that are not Charge; Payment; Credit, and Disbursement get amount that is not equal to zero from any of the amount elements. This is because amount can be in any element.

Note: Unlike the 4 types, other types can have amount in any element. The amount for Charge is in ChargeAmount element, amount for Payment is in PaymentAmount element, amount for Disbursement is in DisbursementAmount element, amount for Credit is in CreditAmount. This is not the case for other tpes. So, for other types, I need to get amount from any element that has amount that is great than zero.

Note: For each of the other types, only one of the amount elements can have amount greater than zero.
If there is more than one amount element with amount that is greater than zero, add exception with exception text "Transaction has more than one amount type"

Currently I am only handling (exception) when the TransactionTypeText is not one of the 4 (Charge, Payment, Credit, Disbursement.

This is the specific are of xslt I need to modify
Code:
<xsl:choose>
  <xsl:when test="../TransactionTypeText='Charge'">
    <xsl:value-of select="mscef:formatCurrency(string(ChargeAmount))"/>
  </xsl:when>
  <xsl:when test="../TransactionTypeText='Payment'">
    <xsl:value-of select="mscef:formatCurrency(string(PaymentAmount))"/>
  </xsl:when>
  <xsl:when test="../TransactionTypeText='Credit'">
    <xsl:value-of select="mscef:formatCurrency(string(CreditAmount))"/>
  </xsl:when>
  <xsl:when test="../TransactionTypeText='Disbursement'">
    <xsl:value-of select="mscef:formatCurrency(string(DisbursementAmount))"/>
  </xsl:when>
  <xsl:otherwise>
    <xsl:message terminate="yes">Unknown transaction type. <xsl:value-of select="../TransactionTypeText"/>
    </xsl:message>
  </xsl:otherwise>
</xsl:choose>


Expected output
Code:
<FinancialDetail>
    <FinancialTransaction>
        <TransactionID>1639560336</TransactionID>
        <TransactionTypeText>Charge</TransactionTypeText>
        <TransactionDate>2016-07-11</TransactionDate>
        <TransactionFeeDetail>
            <FeeDetailID>1650110685</FeeDetailID>
            <FeeDetailFeeCodeText code="REST">Restitution</FeeDetailFeeCodeText>
            <FeeDetailFeeAmount>500</FeeDetailFeeAmount>
        </TransactionFeeDetail>
        <TransactionCommentText/>
        <TransactionPaymentCreditTypeText/>
    </FinancialTransaction>
    <FinancialTransaction>
        <TransactionID>1639560337</TransactionID>
        <TransactionTypeText>Adjustment</TransactionTypeText>
        <TransactionDate>2016-07-11</TransactionDate>
        <TransactionFeeDetail>
            <FeeDetailID>1650110685</FeeDetailID>
            <FeeDetailFeeCodeText code="REST">Restitution</FeeDetailFeeCodeText>
            <FeeDetailFeeAmount>-500</FeeDetailFeeAmount>
        </TransactionFeeDetail>
        <TransactionCommentText>Testing</TransactionCommentText>
        <TransactionPaymentCreditTypeText/>
    </FinancialTransaction>
</FinancialDetail>


xslt stylesheet
Code:
<xsl:stylesheet version="1.0" xmlns="http://www.courts.state.mn.us/CourtXML/3" xmlns:msc="http://www.courts.state.mn.us/CourtXML/3" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mscef="courts.state.mn.us/extfun" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="mscef msxsl msc">
    <xsl:output method="xml" encoding="UTF-8"/>
    <xsl:template name="FinancialDetailType">
        <xsl:for-each select="ancestor::Integration/FinancialDetail/Transaction[count(TransactionFeeDetail[FeeDetailFeeCode='REST'])>0]">
            <FinancialTransaction>
                <TransactionID>
                    <xsl:value-of select="TransactionID"/>
                </TransactionID>
                <TransactionTypeText>
                    <xsl:value-of select="TransactionTypeText"/>
                </TransactionTypeText>
                <TransactionDate>
                    <xsl:value-of select="substring(TransactionDate,1,10)"/>
                </TransactionDate>
                <xsl:for-each select="TransactionFeeDetail[FeeDetailFeeCode='REST']">
                    <TransactionFeeDetail>
                        <FeeDetailID>
                            <xsl:value-of select="FeeDetailID"/>
                        </FeeDetailID>
                        <FeeDetailFeeCodeText>
                            <xsl:attribute name="code">
                                <xsl:value-of select="FeeDetailFeeCode"/>
                            </xsl:attribute>
                            <xsl:value-of select="FeeDetailFeeCodeText"/>
                        </FeeDetailFeeCodeText>
                        <FeeDetailFeeAmount>
                            <xsl:choose>
                                <xsl:when test="../TransactionTypeText='Charge'">
                                    <xsl:value-of select="mscef:formatCurrency(string(ChargeAmount))"/>
                                </xsl:when>
                                <xsl:when test="../TransactionTypeText='Payment'">
                                    <xsl:value-of select="mscef:formatCurrency(string(PaymentAmount))"/>
                                </xsl:when>
                                <xsl:when test="../TransactionTypeText='Credit'">
                                    <xsl:value-of select="mscef:formatCurrency(string(CreditAmount))"/>
                                </xsl:when>
                                <xsl:when test="../TransactionTypeText='Disbursement'">
                                    <xsl:value-of select="mscef:formatCurrency(string(DisbursementAmount))"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:message terminate="yes">Unknown transaction type. <xsl:value-of select="../TransactionTypeText"/>
                                    </xsl:message>
                                </xsl:otherwise>
                            </xsl:choose>
                        </FeeDetailFeeAmount>
                    </TransactionFeeDetail>
                </xsl:for-each>
                <TransactionCommentText>
                    <xsl:value-of select="TransactionCommentText"/>
                </TransactionCommentText>
                <TransactionPaymentCreditTypeText>
                    <xsl:value-of select="TransactionPaymentCreditTypeText"/>
                </TransactionPaymentCreditTypeText>
            </FinancialTransaction>
        </xsl:for-each>
    </xsl:template>
    <msxsl:script language="JScript" implements-prefix="mscef">
    <![CDATA[
        
        function formatCurrency(asCurrency){
            asCurrency = asCurrency.replace("\$","");
            asCurrency = asCurrency.replace("\,","");
            return parseFloat(asCurrency);
        }
        function formatTwoDecimalCurrency(asCurrency){
            if(asCurrency.length==0){
            return "";
            }
            asCurrency = asCurrency.replace("\$","");
            asCurrency = asCurrency.replace("\,","");
            return parseFloat(asCurrency).toFixed(2);
        }
    ]]></msxsl:script>
</xsl:stylesheet>


xml document
Code:
<Integration>
    <Case InternalID="1612988653" ID="5226206" xmlns:user="http://tylertechnologies.com">
    </Case>
    <FinancialDetail>
        <Transaction>
            <TransactionID>1621246445</TransactionID>
            <TransactionTypeText>Charge</TransactionTypeText>
            <TransactionDate>2010-06-30T00:00:00</TransactionDate>
            <TransactionFeeDetail>
                <FeeDetailID>1624242662</FeeDetailID>
                <FeeDetailFeeCode>CRMTRAF5</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Crim/Traffic Surcharge 2005</FeeDetailFeeCodeText>
                <ChargeAmount>72.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242663</FeeDetailID>
                <FeeDetailFeeCode>LAWLIBCR</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Law Library Criminal</FeeDetailFeeCodeText>
                <ChargeAmount>10.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242664</FeeDetailID>
                <FeeDetailFeeCode>MUNICCTY</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Municipal Fines-County Share</FeeDetailFeeCodeText>
                <ChargeAmount>233.3800</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242665</FeeDetailID>
                <FeeDetailFeeCode>10CHAS23</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Chaska (0300) 2/3</FeeDetailFeeCodeText>
                <ChargeAmount>466.6200</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242666</FeeDetailID>
                <FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
                <ChargeAmount>3.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242667</FeeDetailID>
                <FeeDetailFeeCode>PROSCOSTS</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Prosecution Costs</FeeDetailFeeCodeText>
                <ChargeAmount>700.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
        </Transaction>
        <Transaction>
            <TransactionID>1621279946</TransactionID>
            <TransactionTypeText>Charge</TransactionTypeText>
            <TransactionDate>2010-07-06T00:00:00</TransactionDate>
            <TransactionFeeDetail>
                <FeeDetailID>1624281693</FeeDetailID>
                <FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
                <ChargeAmount>20.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
        </Transaction>
        <Transaction>
            <TransactionID>1621541452</TransactionID>
            <TransactionTypeText>Payment</TransactionTypeText>
            <TransactionDate>2010-08-06T00:00:00</TransactionDate>
            <TransactionFeeDetail>
                <FeeDetailID>1624242664</FeeDetailID>
                <FeeDetailFeeCode>MUNICCTY</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Municipal Fines-County Share</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>32.2800</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242665</FeeDetailID>
                <FeeDetailFeeCode>10CHAS23</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Chaska (0300) 2/3</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>64.5400</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242666</FeeDetailID>
                <FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.4100</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624281693</FeeDetailID>
                <FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>2.7700</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
        </Transaction>
        <Transaction>
            <TransactionID>1621746487</TransactionID>
            <TransactionTypeText>Disbursement</TransactionTypeText>
            <TransactionDate>2010-09-01T00:00:00</TransactionDate>
            <TransactionFeeDetail>
                <FeeDetailID>1624242664</FeeDetailID>
                <FeeDetailFeeCode>MUNICCTY</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Municipal Fines-County Share</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>32.2800</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242665</FeeDetailID>
                <FeeDetailFeeCode>10CHAS23</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Chaska (0300) 2/3</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>64.5400</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624242666</FeeDetailID>
                <FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.4100</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
            <TransactionFeeDetail>
                <FeeDetailID>1624281693</FeeDetailID>
                <FeeDetailFeeCode>CRTCOSTS</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Court Costs</FeeDetailFeeCodeText>
                <ChargeAmount>0.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>2.7700</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
                <RecipientAccountID>1610014856</RecipientAccountID>
                <NameLast>MN Department of Finance</NameLast>
            </TransactionFeeDetail>
        </Transaction>
        <Transaction>
            <TransactionID>1639560336</TransactionID>
            <TransactionTypeText>Charge</TransactionTypeText>
            <TransactionDate>2016-07-11T00:00:00</TransactionDate>
            <TransactionFeeDetail>
                <FeeDetailID>1650110685</FeeDetailID>
                <FeeDetailFeeCode>REST</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Restitution</FeeDetailFeeCodeText>
                <ChargeAmount>500.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
            </TransactionFeeDetail>
        </Transaction>
        <Transaction>
            <TransactionID>1639560337</TransactionID>
            <TransactionCommentText>Testing</TransactionCommentText>
            <TransactionTypeText>Adjustment</TransactionTypeText>
            <TransactionDate>2016-07-11T00:00:00</TransactionDate>
            <TransactionFeeDetail>
                <FeeDetailID>1650110685</FeeDetailID>
                <FeeDetailFeeCode>REST</FeeDetailFeeCode>
                <FeeDetailFeeCodeText>Restitution</FeeDetailFeeCodeText>
                <ChargeAmount>-500.0000</ChargeAmount>
                <CreditAmount>0.0000</CreditAmount>
                <DisbursementAmount>0.0000</DisbursementAmount>
                <PaymentAmount>0.0000</PaymentAmount>
            </TransactionFeeDetail>
        </Transaction>
    </FinancialDetail>
</Integration>

Use of the Altova User Forum(s) is governed by the Altova Terms of Use.