Bonjour,

J'ai un petit soucis avec Castor que je viens de prendre en main il y a peine 2 jours.

J'ai 2 Objets, dont le premier est composé une List du deuxième :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
import java.util.ArrayList;
import java.util.List;
 
public class UnderlyingStocks{
	public List underlyingStocks = new ArrayList();
 
	public List getUnderlyingStocks() {
		return underlyingStocks;
	}
 
	public void addUnderlyingStock(UnderlyingStock anUnderlyingStock) {
			this.underlyingStocks.add(anUnderlyingStock);
	}
 
	public void setUnderlyingStocks(List underlyingStocks) {
		this.underlyingStocks = underlyingStocks;
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
import java.math.BigDecimal;
 
 
public class UnderlyingStock {
 
	public String underlyingStockId;
	public String underlyingStockType;
	public String underlyingStockDesc;
	public BigDecimal issuedShareCapital;
	public String sector;
	public String votingRights;
	public String listed;
	public Exchanges exchanges;
	public Issuer issuer;
	public Position position;
 
	public Exchanges getExchanges() {
		return exchanges;
	}
	public void setExchanges(Exchanges exchanges) {
		this.exchanges = exchanges;
	}
	public BigDecimal getIssuedShareCapital() {
		return issuedShareCapital;
	}
	public void setIssuedShareCapital(BigDecimal issuedShareCapital) {
		this.issuedShareCapital = issuedShareCapital;
	}
	public Issuer getIssuer() {
		return issuer;
	}
	public void setIssuer(Issuer issuer) {
		this.issuer = issuer;
	}
	public String getListed() {
		return listed;
	}
	public void setListed(String listed) {
		this.listed = listed;
	}
	public Position getPosition() {
		return position;
	}
	public void setPosition(Position position) {
		this.position = position;
	}
	public String getSector() {
		return sector;
	}
	public void setSector(String sector) {
		this.sector = sector;
	}
	public String getUnderlyingStockDesc() {
		return underlyingStockDesc;
	}
	public void setUnderlyingStockDesc(String underlyingStockDesc) {
		this.underlyingStockDesc = underlyingStockDesc;
	}
	public String getUnderlyingStockId() {
		return underlyingStockId;
	}
	public void setUnderlyingStockId(String underlyingStockId) {
		this.underlyingStockId = underlyingStockId;
	}
	public String getUnderlyingStockType() {
		return underlyingStockType;
	}
	public void setUnderlyingStockType(String underlyingStockType) {
		this.underlyingStockType = underlyingStockType;
	}
	public String getVotingRights() {
		return votingRights;
	}
	public void setVotingRights(String votingRights) {
		this.votingRights = votingRights;
	}	
}
Et voici l'extrait de mon mapping XML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
<class name="com.hsbc.hbfr.ssds.objects.UnderlyingStocks" standalone="yes">
		<field name="underlyingStocks" type="com.hsbc.hbfr.ssds.objects.UnderlyingStock" collection="collection">
			<bind-xml name="underlying-stock" />
		</field>
	</class>
	<class name="com.hsbc.hbfr.ssds.objects.UnderlyingStock">
		<field name="underlyingStockId" type="string">
			<bind-xml name="underlying-stock-id" />
		</field>
		<field name="underlyingStockType" type="string">
			<bind-xml name="underlying-stock-type" />
		</field>
		<field name="underlyingStockDesc" type="string">
			<bind-xml name="underlying-stock-desc" />
		</field>
		<field name="issuedShareCapital" type="big-decimal">
			<bind-xml name="issued-share-capital" />
		</field>
		<field name="sector" type="string">
			<bind-xml name="sector" />
		</field>
		<field name="votingRights" type="string">
			<bind-xml name="voting-rights" />
		</field>
		<field name="listed" type="string">
			<bind-xml name="listed" />
		</field>
		<field name="exchanges" type="com.hsbc.hbfr.ssds.objects.Exchanges">
			<bind-xml name="exchanges" />
		</field>
		<field name="issuer" type="com.hsbc.hbfr.ssds.objects.Issuer">
			<bind-xml name="issuer" />
		</field>
		<field name="position" type="com.hsbc.hbfr.ssds.objects.Position">
			<bind-xml name="position" />
		</field>
	</class>
Mon problème est que j'obtiens ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<underlying-stocks xsi:type="underlying-stock" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<underlying-stock-id>FR0000032609  </underlying-stock-id>
...
<position>
...
</position>
</underlying-stocks>

au lieu de :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<underlying-stocks>
   <underlying-stock>
      <underlying-stock-id>FR0000032609  </underlying-stock-id>
      ...
         <position>
         ...
        </position>
   </underlying-stock>
</underlying-stocks>
En résumé la balise <underlying-stock> n'apparait pas et le namespace et en trop.

Merci