Comment prenez-vous un fichier XML et d'insérer ses valeurs dans une table de base de données à l'aide de SSIS (SQL Server 2005)

J'ai XML (voir ci-dessous).

J'ai besoin d'insérer les enregistrements de ce fichier XML dans SQL Server 2005 table à l'aide de SSIS.

Je suis coincé avec le fichier xsd de la description. Dans Visual Studio, quand je clique sur la génération XSD bouton je reçois le message "Impossible de déduire le XSD à partir du fichier XML. Le XML contient plusieurs espaces de noms."

Personne ne sait d'une bonne ressource ou un tutoriel qui peut m'aider soft ce problème?

Veuillez noter que j'ai besoin d'effectuer cette tâche dans SSIS.

Grâce

<?xml version="1.0" encoding="utf-8" ?> 
<Envelope>
<Body>
<Env>
<ACMEHdr:ACMEResponseHdr xmlns:ACMEHdr="ACMEResponseHdr">
<ACMEHdr:ProcessorName>ACME PREPAID SOLUTIONS</ACMEHdr:ProcessorName>
<ACMEHdr:FeedName>ACMEPMTRSP</ACMEHdr:FeedName>
<ACMEHdr:FileDate>08122010</ACMEHdr:FileDate>
<ACMEHdr:WorkOfDate>08112010</ACMEHdr:WorkOfDate>
<ACMEHdr:FileSeqNumber>000024</ACMEHdr:FileSeqNumber>
</ACMEHdr:ACMEResponseHdr>
<Msg:Message xmlns:Msg="Message">
<Pmt:PaymentResponse xmlns:Pmt="PaymentResponse">
<Pmt:TransactionResponse xmlns:TransResp="TransactionResponse">
<TransResp:trnDate>0711201002:10:01.123456</TransResp:trnDate>
<TransResp:intTransactionRefId>131BE5E1-701A-42FA-AF8C-D2D38FDCC2EA</TransResp:intTransactionRefId>
<TransResp:transAmt>11.88</TransResp:transAmt>
<TransResp:strDebitCreditCode>DR</TransResp:strDebitCreditCode>
<TransResp:transCurrencyCd>840</TransResp:transCurrencyCd>
<TransResp:userID></TransResp:userID>
<TransResp:transAmtUSD>11.88</TransResp:transAmtUSD>
<TransResp:orderNbr>AM219003F700</TransResp:orderNbr>
<TransResp:ACHTransactionID></TransResp:ACHTransactionID>
<TransResp:fundSourceType>02</TransResp:fundSourceType>
<TransResp:sessionId>MondaySep12201022134314153720392</TransResp:sessionId>
<TransResp:requestToken>ACHMEN414d51204c50505741373838202020202421824b12246620</TransResp:requestToken>
<TransResp:authorizationCode>A98765</TransResp:authorizationCode>
<TransResp:reasonCode></TransResp:reasonCode>
<TransResp:reasonCodeDesc></TransResp:reasonCodeDesc>
<TransResp:addressMatch>Y</TransResp:addressMatch>
<TransResp:postalCdMatchInd>Y</TransResp:postalCdMatchInd>
<TransResp:SENbr>295176482889</TransResp:SENbr>
<TransResp:SEName>American Express PASS Card Fee</TransResp:SEName>
<TransResp:transResponse>A</TransResp:transResponse>
</Pmt:TransactionResponse>
<Pmt:TransactionResponse xmlns:TransResp="TransactionResponse">
<TransResp:trnDate>0711201002:15:01.123456</TransResp:trnDate>
<TransResp:intTransactionRefId>46233C40-3C33-4914-B447-B3E60BB04148</TransResp:intTransactionRefId>
<TransResp:transAmt>11.88</TransResp:transAmt>
<TransResp:strDebitCreditCode>DR</TransResp:strDebitCreditCode>
<TransResp:transCurrencyCd>840</TransResp:transCurrencyCd>
<TransResp:userID></TransResp:userID>
<TransResp:transAmtUSD>11.88</TransResp:transAmtUSD>
<TransResp:orderNbr>AM009003F701</TransResp:orderNbr>
<TransResp:ACHTransactionID>ACH1234567</TransResp:ACHTransactionID>
<TransResp:fundSourceType>05</TransResp:fundSourceType>
<TransResp:sessionId>MondayAug12201022134214123456789</TransResp:sessionId>
<TransResp:requestToken></TransResp:requestToken>
<TransResp:authorizationCode></TransResp:authorizationCode>
<TransResp:reasonCode></TransResp:reasonCode>
<TransResp:reasonCodeDesc></TransResp:reasonCodeDesc>
<TransResp:addressMatch></TransResp:addressMatch>
<TransResp:postalCdMatchInd></TransResp:postalCdMatchInd>
<TransResp:SENbr></TransResp:SENbr>
<TransResp:SEName></TransResp:SEName>
<TransResp:transResponse>A</TransResp:transResponse>
</Pmt:TransactionResponse>
</Pmt:PaymentResponse>
</Msg:Message>
<ACMEFtr:ACMEResponseFooter xmlns:ACMEFtr="ACMEResponseFooter">
<ACMEFtr:countDetail>2</ACMEFtr:countDetail>
<ACMEFtr:countCreditDetail>0</ACMEFtr:countCreditDetail>
<ACMEFtr:countDebitDetail>2</ACMEFtr:countDebitDetail>
<ACMEFtr:hashTotalAmt>23.76</ACMEFtr:hashTotalAmt>
<ACMEFtr:hashTotalCreditAmt>0.00</ACMEFtr:hashTotalCreditAmt>
<ACMEFtr:hashTotalDebitAmt>23.76</ACMEFtr:hashTotalDebitAmt>
</ACMEFtr:ACMEResponseFooter>
</Env>
</Body>
</Envelope>
  • Voulez-vous ensuite l'insérer l'ensemble des données xml dans une colonne dans une table, ou voulez-vous sélectionner certaines parties du XML et de les mettre dans des colonnes différentes?
  • J'ai besoin de faire un peu plus de la transformation sur les données à la SSIS niveau. Mais c'est l'étape je suis actuellement bloqué sur.