【发布时间】:2021-11-22 10:31:32
【问题描述】:
早安,
我在这里发射信号弹。我正在尝试映射一个对象并生成 XML。我拥有的代码是:
output application/xml
ns v1 http://services.visa.com/cam/v1
ns ns3 http://services.visa.com/cam/v2015_02
---
Accounts: {(vars.Accounts map
ns3#ContainerItemBaseType @("xsi:type": 'ns3:CardAccountTypeExp') : {
ns3#UpdateType : "Add",
ns3#Key : {
ns3#UniqueId: "0",
ns3#LastMaintenanceTimeStamp @("xsi:nil": 'true'): null,
ns3#UniqueIndexId: "0",
ns3#Pan: vars.newpan,
ns3#Plastic @("xsi:nil": 'true'): null
},
ns3#AccountNumber: $.AccountNumber,
ns3#AccountTypeCode: $.AccountTypeCode,
ns3#AccountType: $.AccountType,
ns3#InstitutionId: $.InstitutionId,
ns3#AccountQualifier @("xsi:nil": 'true'): null,
ns3#AccountDescription @("xsi:nil": 'true'): null,
ns3#ServiceLine: $.ServiceLine,
ns3#ServiceLineCode: $.ServiceLineCode,
ns3#IsFunding: $.IsFunding,
ns3#AccountIndicator: "Primary",
ns3#HasCreditAccess: true,
ns3#HasDebitAccess: true,
ns3#AccountOpenedDate @("xsi:nil": 'true'): null,
ns3#AccountCurrencyCode_x0020_: "840",
ns3#AccountNickName: $.AccountNickName,
}
)}
这会生成以下 XML: xml
这几乎是正确的。我希望能够删除周围的 Accounts 标签。有人知道我是怎么做到的吗?
提前感谢您的帮助
院长 .
这是需要生成的完整 XML。每个容器类型都被一个标签包围,使每个容器都有效。我需要生成两个 CardAccountTypeExp 容器
<ns3:Items>
<ns3:ContainerItemBaseType xsi:type="ns3:DigitalCardInfoTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>4153423278</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:LastUsedTimestamp xsi:nil="true"/>
<ns3:UpdateTimestamp xsi:nil="true"/>
<ns3:MaintenanceTimestamp xsi:nil="true"/>
<ns3:StatusCode xsi:nil="true"/>
<ns3:ActivationType>NotActivated</ns3:ActivationType>
<ns3:CardStatusSourceId xsi:nil="true"/>
<ns3:TransactionAccess>
<ns3:Withdrawals>true</ns3:Withdrawals>
<ns3:Deposits>true</ns3:Deposits>
<ns3:Inquiries>true</ns3:Inquiries>
<ns3:PaymentsTo>true</ns3:PaymentsTo>
<ns3:PaymentsFrom>true</ns3:PaymentsFrom>
<ns3:TransfersTo>true</ns3:TransfersTo>
<ns3:TransfersFrom>true</ns3:TransfersFrom>
<ns3:Purchases>true</ns3:Purchases>
<ns3:ThirdPartyPayment>true</ns3:ThirdPartyPayment>
</ns3:TransactionAccess>
<ns3:PinFailCount>0</ns3:PinFailCount>
<ns3:LimitGroupId>L14408</ns3:LimitGroupId>
<ns3:LastCardstatusTimestamp xsi:nil="true"/>
<ns3:LastActivationTimestamp xsi:nil="true"/>
<ns3:Version xsi:nil="true"/>
<ns3:DigitalActive>false</ns3:DigitalActive>
</ns3:ContainerItemBaseType>
<ns3:ContainerItemBaseType xsi:type="ns3:Track2InfoTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:LastMaintenanceTimeStamp xsi:nil="true"/>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>4156743278</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:PinAuthFlag>false</ns3:PinAuthFlag>
<ns3:PinAuthUpdateValue xsi:nil="true"/>
<ns3:ExpirationDate>
<ns3:MM>10</ns3:MM>
<ns3:YY>24</ns3:YY>
</ns3:ExpirationDate>
<ns3:PinAuthStatus>NaturalPinOffsetUsed</ns3:PinAuthStatus>
<ns3:DefaultToExtExpDate>false</ns3:DefaultToExtExpDate>
<ns3:PrevCardActivationStatus>None</ns3:PrevCardActivationStatus>
<ns3:IssueActive xsi:nil="true"/>
<ns3:VersionField>01</ns3:VersionField>
<ns3:PinChangeEmailFlag>N</ns3:PinChangeEmailFlag>
<ns3:PinChangeCellPhoneFlag>N</ns3:PinChangeCellPhoneFlag>
<ns3:EmailNotificationRecordID xsi:nil="true"/>
<ns3:CellPhoneNotificationRecordID xsi:nil="true"/>
</ns3:ContainerItemBaseType>
<ns3:ContainerItemBaseType xsi:type="ns3:CardAccountTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:LastMaintenanceTimeStamp xsi:nil="true"/>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>415378</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:AccountNumber>043701</ns3:AccountNumber>
<ns3:AccountTypeCode>SAV</ns3:AccountTypeCode>
<ns3:AccountType>Savings</ns3:AccountType>
<ns3:InstitutionId>59954</ns3:InstitutionId>
<ns3:AccountQualifier xsi:nil="true"/>
<ns3:AccountDescription xsi:nil="true"/>
<ns3:ServiceLine>Savings</ns3:ServiceLine>
<ns3:ServiceLineCode>SAV</ns3:ServiceLineCode>
<ns3:IsFunding>false</ns3:IsFunding>
<ns3:AccountIndicator>Primary</ns3:AccountIndicator>
<ns3:HasCreditAccess>true</ns3:HasCreditAccess>
<ns3:HasDebitAccess>true</ns3:HasDebitAccess>
<ns3:AccountOpenedDate xsi:nil="true"/>
<ns3:AccountCurrencyCode_x0020_>840</ns3:AccountCurrencyCode_x0020_>
<ns3:AccountNickName/>
</ns3:ContainerItemBaseType>
<ns3:ContainerItemBaseType xsi:type="ns3:CHBillingAddressTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:LastMaintenanceTimeStamp xsi:nil="true"/>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>4153422086743278</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:AddressExp>
<ns3:Line1>1700 *********2</ns3:Line1>
<ns3:Line2/>
<ns3:Line3/>
<ns3:City>BERKELEY</ns3:City>
<ns3:State>CA</ns3:State>
<ns3:ZipCode>947093402</ns3:ZipCode>
<ns3:CountryCode>USA</ns3:CountryCode>
</ns3:AddressExp>
<ns3:RecordNumber>01</ns3:RecordNumber>
<ns3:IsPreferred>Y</ns3:IsPreferred>
</ns3:ContainerItemBaseType>
<ns3:ContainerItemBaseType xsi:type="ns3:CardholderNameItemTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:LastMaintenanceTimeStamp xsi:nil="true"/>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>4153422086743278</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:NameExp xsi:type="ns3:NameTypeExp">
<ns3:FirstName>M****A</ns3:FirstName>
<ns3:LastName>F*****ES</ns3:LastName>
<ns3:MiddleInitial>M</ns3:MiddleInitial>
<ns3:Suffix/>
<ns3:Title/>
</ns3:NameExp>
<ns3:IsPrimary>true</ns3:IsPrimary>
<ns3:Version xsi:nil="true"/>
<ns3:RecordNumber>01</ns3:RecordNumber>
<ns3:PreferredFlag>Y</ns3:PreferredFlag>
<ns3:NameType>PN</ns3:NameType>
</ns3:ContainerItemBaseType>
<ns3:ContainerItemBaseType xsi:type="ns3:CustomerEmailTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:LastMaintenanceTimeStamp xsi:nil="true"/>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>4143278</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:EmailType>Personal</ns3:EmailType>
<ns3:EmailAddress>PILOE.COM</ns3:EmailAddress>
<ns3:Version xsi:nil="true"/>
<ns3:RecordNumber>1</ns3:RecordNumber>
<ns3:IsPreferred>Y</ns3:IsPreferred>
</ns3:ContainerItemBaseType>
<ns3:ContainerItemBaseType xsi:type="ns3:CellPhoneItemTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:LastMaintenanceTimeStamp xsi:nil="true"/>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>4153422086743278</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:VersionField>01</ns3:VersionField>
<ns3:RecordNbrField>1</ns3:RecordNbrField>
<ns3:PreferredFlagField>Y</ns3:PreferredFlagField>
<ns3:VerifyDataField>707768/USA/</ns3:VerifyDataField>
<ns3:Number>7068</ns3:Number>
<ns3:Country>USA</ns3:Country>
<ns3:TextOpt xsi:nil="true"/>
</ns3:ContainerItemBaseType>
<ns3:ContainerItemBaseType xsi:type="ns3:CardIssuanceInfoTypeExp">
<ns3:UpdateType>Add</ns3:UpdateType>
<ns3:Key>
<ns3:UniqueId>0</ns3:UniqueId>
<ns3:LastMaintenanceTimeStamp xsi:nil="true"/>
<ns3:UniqueIndexId>0</ns3:UniqueIndexId>
<ns3:Pan>4157278</ns3:Pan>
<ns3:Plastic xsi:nil="true"/>
</ns3:Key>
<ns3:PreviousPAN>4153569</ns3:PreviousPAN>
</ns3:ContainerItemBaseType>
</ns3:Items>
【问题讨论】:
-
请使用文字代替图片。有关原因的更多详细信息,请参阅meta.stackoverflow.com/questions/285551/…。
-
<Accounts>是根标签。如果您删除它,则输出将不是有效的 XML,除非您将其替换为不同的根标记。而且 DataWeave 无论如何都不会生成无效的 XML。请添加预期输出的示例,作为文本,没有图像。