我遇到了为不同模式映射一个模型Object(例如:GroupHeader)的问题。每个模式都有不同的命名空间,但是其中一些复杂类型在每个模式中具有几乎相同的结构。所以我想把这个元素映射到一个java对象。 是否可以使用JAXB来实现这一目标?
第一个架构:
<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02"> <xs:element name="Document" type="Document"/> .... <xs:complexType name="GroupHeader33"> <xs:sequence> <xs:element name="MsgId" type="Max35Text"/> <xs:element name="CreDtTm" type="ISODateTime"/> <xs:element maxOccurs="1" minOccurs="0" name="BtchBookg" type="BatchBookingIndicator"/> <xs:element name="NbOfTxs" type="Max15NumericText"/> <xs:element maxOccurs="1" minOccurs="0" name="CtrlSum" type="DecimalNumber"/> <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrBkSttlmAmt" type="ActiveCurrencyAndAmount"/> <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/> <xs:element name="SttlmInf" type="SettlementInformation13"/> <xs:element maxOccurs="1" minOccurs="0" name="PmtTpInf" type="PaymentTypeInformation21"/> <xs:element maxOccurs="1" minOccurs="0" name="InstgAgt" type="BranchAndFinancialInstitutionIdentification4"/> <xs:element maxOccurs="1" minOccurs="0" name="InstdAgt" type="BranchAndFinancialInstitutionIdentification4"/> ...
第二个架构:
<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.004.001.02" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pacs.004.001.02"> ... <xs:complexType name="GroupHeader38"> <xs:sequence> <xs:element name="MsgId" type="Max35Text"/> <xs:element name="CreDtTm" type="ISODateTime"/> <xs:element maxOccurs="2" minOccurs="0" name="Authstn" type="Authorisation1Choice"/> <xs:element maxOccurs="1" minOccurs="0" name="BtchBookg" type="BatchBookingIndicator"/> <xs:element name="NbOfTxs" type="Max15NumericText"/> <xs:element maxOccurs="1" minOccurs="0" name="CtrlSum" type="DecimalNumber"/> <xs:element maxOccurs="1" minOccurs="0" name="GrpRtr" type="TrueFalseIndicator"/> <xs:element maxOccurs="1" minOccurs="0" name="TtlRtrdIntrBkSttlmAmt" type="ActiveCurrencyAndAmount"/> <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/> <xs:element name="SttlmInf" type="SettlementInformation13"/> <xs:element maxOccurs="1" minOccurs="0" name="InstgAgt" type="BranchAndFinancialInstitutionIdentification4"/> <xs:element maxOccurs="1" minOccurs="0" name="InstdAgt" type="BranchAndFinancialInstitutionIdentification4"/>
对不起我的英文:)
答案 0 :(得分:0)
您可以使用MOXy的外部映射文档为您的域模型应用多个映射:
以下示例演示了如何处理。如果存在差异:
此示例演示了如何处理小差异: