Kinyanjui Kamau Ответов: 0

Создание XML-банковского документа из шаблона


У меня есть этот шаблон из банка, который используется для осуществления платежей по переводам банковских счетов.

См. xml ниже. Я включил примерные данные, которые должны быть введены при отправке файла в банк.

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>Copy Cart Urgent28052018_57894</MsgId>
      <CreDtTm>2018-06-29T11:52:23</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>667896.00</CtrlSum>
      <InitgPty>
        <Nm>COPY CART LIMITED</Nm>
        <Id>
          <OrgId>
            <Othr>
              <Id>S001234/PJones</Id>
              <SchmeNm>
                <Cd>CUST</Cd>
              </SchmeNm>
            </Othr>
          </OrgId>
        </Id>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>Payment for addon development SAP B1</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <BtchBookg>false</BtchBookg>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>667896.00</CtrlSum>
      <PmtTpInf>
        <InstrPrty>HIGH</InstrPrty>
      </PmtTpInf>
      <ReqdExctnDt>2018-06-29</ReqdExctnDt>
      <Dbtr>
        <Nm>COPY CART LIMITED</Nm>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <Othr>
            <Id>0100000110846</Id>
          </Othr>
        </Id>
        <Ccy>KES</Ccy>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BIC>SBICKENX</BIC>
         </FinInstnId>
      </DbtrAgt>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>156335578965</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="KES">667896.00</InstdAmt>
        </Amt>
        <ChrgBr>DEBT</ChrgBr>
        <CdtrAgt>
          <FinInstnId>
            <BIC>DTKEKENA</BIC>
            <ClrSysMmbId>
              <MmbId>63000</MmbId>
            </ClrSysMmbId>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>EOH SEAL LTD</Nm>
          <PstlAdr>
            <StrtNm>P.O. Box 10496</StrtNm>
            <TwnNm>Nairobi</TwnNm>
            <Ctry>KE</Ctry>
            <AdrLine>P.O. Box 10496</AdrLine>
            <AdrLine>00100 NAIROBI</AdrLine>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <Othr>
              <Id>0112406001</Id>
            </Othr>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Copy Cat Urgent28052018_57894</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
        </PmtInf>
  </CstmrCdtTrfInitn>
</Document>


Файл довольно длинный, так как должен быть в заданном формате. Черные буквы обозначают детали, которые должны быть переданы в xml. Чтобы проверить, понял ли я, какие данные идут туда, куда я их заполнил вручную и отправил в банк для тестирования. То есть сейчас все хорошо.

У меня есть программа SAP Business One addon, которая захватывает детали из формы и генерирует список. Каждый платеж должен следовать этой структуре.

Данные, записанные в формате .xml (черные буквы), представляют собой форму со строками и столбцами. Таким образом, если у вас есть 2 строки данных, xml удвоится по размеру, реплицируя те же поля, что и выше.

Каков наилучший метод создания xml-файла, как описано выше, из данных формы в c#?

Что я уже пробовал:

Я думал, что лучший способ получить данные c# - это собрать данные формы в список "bankintegration". Где BankIntegration-это класс со свойствами get/set.

Затем я использовал Visual Studio: Edit -> Paste Special -> Paste XML as Classes. Это привело к созданию многочисленных классов, которые кажутся мне бесполезными.

F-ES Sitecore

Проще всего было бы построить структуру данных из классов, а затем использовать сериализацию xml для преобразования ее в XML. Существуют различные способы сделать это, например, google "c# xml serialization".

Gerry Schmitz

"Специальная паста" работает отлично. "Имена классов" отражают структуру XML, поэтому они выглядят "странно".

Классы будут работать для вашего тривиального случая. Вам просто нужно потратить 5 минут, чтобы ознакомиться с ним; поля, свойства и конструкторы; все "стандартно".

0 Ответов