最近需要跟第三方连调接口,在针对返回xml解析的时候,生成xsd响应报文,返回一个list集合
以下是参考资料和 实际解决方案
例:我的xml响应报文是以下格式


































RecordSet存在多条的情况

1、参考XML Schema list案例
因为simpleType的list都是简单类型,无法支持复杂的自定义类型,遂考虑用group组概念。
2、XML Schema group 案例
但是使用group 之后,发现生成的javabean还是 Object,而不是list或者Array。参考各方面资料,遂发现一个属性:maxOccurs="unbounded"
3、maxOccurs="unbounded" 的详细解释

下面是我的xsd格式和关于复杂自定义list的使用案例

xmlns:xs="http://www.w3.org/2001/XMLSchema">;


    
        
            
                多条RecordSet多条RecordSet
            
        
        
            
                交易账号 32位交易账号 32位
            
        
        
            
                交易账号名称 60位交易账号名称 60位
            
        
        
            
                对方户名 60位对方户名 60位
            
        
        
            
                对方账号 32位对方账号 32位
            
        
        
            
                对方开户行全称 60位对方开户行全称 60位
            
        
        
            
                对方开户行行号 20位对方开户行行号 20位
            
        
        
            
                发生金额 13位 无小数点单位为分发生金额 13位 无小数点单位为分
            
        
        
            
                转账后余额 13位 无小数点单位为分转账后余额 13位 无小数点单位为分
            
        
        
            
                转出转入标志 0-借 1-贷1位转出转入标志 0-借 1-贷1位
            
        
        
            
                银行流水号 12位银行流水号 12位
            
        
        
            
                企业流水号32位企业流水号32位
            
        
        
            
                转账日期 格式yyyymmdd 8位转账日期 格式yyyymmdd 8位
            
        
        
            
                转账时间 格式hhmmss 6位转账时间 格式hhmmss 6位
            
        
        
            
                交易类型 20位交易类型 20位
            
        
        
            
                凭证名称 40位凭证名称 40位
            
        
        
            
                凭证号码 32位凭证号码 32位
            
        
        
            
                用途 40位用途 40位
            
        
        
            
                摘要 40位摘要 40位
            
        
        
            
                交易渠道 40位交易渠道 40位
            
        
        
            
                备用字段1 40位备用字段1 40位
            
        
        
            
                备用字段2 40位备用字段2 40位
            
        
        
            
                备用字段3 40位备用字段3 40位
            
        
    



    
        
            
                
                    
                       
                           
                                
                                    
                                        
                                    
                                
                           
                       
                    
                
            
        
    

上述代码,我定义了一个group, 并在集合元素里面引用了group, 但是对于多个RecordSet, 通过maxOccurs="unbounded" 来实现将其变成List

最后生成的JavaBean: recordSet这个属性就是集合了