"์•Œ์•˜์–ด, ๊ทธ๋Ÿผ. ์ด๋ฏธ ์ง์ž‘ํ–ˆ๊ฒ ์ง€๋งŒ, ๊ทธ๊ฒŒ ์ „๋ถ€๋Š” ์•„๋‹ˆ์•ผ."

"์ด์ œ JAXB์˜ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ธก๋ฉด์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ JSON์—์„œ ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์ปฌ๋ ‰์…˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค."

"JAXB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปฌ๋ ‰์…˜์„ ์—ญ์ง๋ ฌํ™”ํ•  ๋•Œ List ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•  ํŠน์ • ์ปฌ๋ ‰์…˜(ArrayList, LinkedList, Vector ๋“ฑ)์— ๋Œ€ํ•œ ๋ถˆํ™•์‹ค์„ฑ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์€ ์ฃผ์„์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค."

"๋ชจ๋“  ๊ฒƒ์ด ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜ ์œ ํ˜•์ด ์ฃผ์„์— ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ JAXB๋Š” ํ•ด๋‹น ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์žฅ ์ ์ ˆํ•œ ์ปฌ๋ ‰์…˜์„ ์„ ํƒํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก์˜ ๊ฒฝ์šฐ ArrayList๊ฐ€ ๋˜๊ณ  ๋งต์˜ ๊ฒฝ์šฐ HashMap ๋“ฑ์ด ๋ฉ๋‹ˆ๋‹ค. ."

"์‹ค์ œ๋กœ ๊ฐ ํด๋ž˜์Šค์—๋Š” ๊ณ ์œ ํ•œ ํƒœ๊ทธ๊ฐ€ ์žˆ๊ณ  ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •ํ™•ํ•œ ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JSON๋ณด๋‹ค ๋ฌธ์ œ๊ฐ€ ํ›จ์”ฌ ์ ์Šต๋‹ˆ๋‹ค."

"์˜ˆ๋ฅผ ๋“ค์–ด ๊ณตํ†ต ์กฐ์ƒ์„ ์ƒ์†ํ•˜๋Š” ์š”์†Œ ๊ทธ๋ฃน์„ ์—ญ์ง๋ ฌํ™”ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ @XmlAny: ์ฃผ์„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.  "

XML์—์„œ ๊ฐœ์ฒด ๋ณ€ํ™˜
public static void main(String[] args) throws JAXBException
{
 String xmldata = "<zoo><cat/><cat/><dog/><cat/></zoo>";
 StringReader reader = new StringReader(xmldata);

 JAXBContext context = JAXBContext.newInstance(Cat.class, Zoo.class, Dog.class);
 Unmarshaller unmarshaller = context.createUnmarshaller();

 Cat cat = (Cat) unmarshaller.unmarshal(reader);
}
๊ฐœ์ฒด๊ฐ€ XML์—์„œ ์—ญ์ง๋ ฌํ™”๋˜๋Š” ํด๋ž˜์Šค
@XmlType(name = "zoo") 
@XmlRootElement 
class  Zoo 
{ 
@XmlAny public  List<Object> animals; } 
 


@XmlType(์ด๋ฆ„ = "๊ณ ์–‘์ด") 
@XmlRootElement 
class  Cat 
{ 
๊ณต๊ฐœ  ๋ฌธ์ž์—ด ์ด๋ฆ„; ๊ณต๊ณต  ์—ฐ๋ น; ๊ณต๊ฐœ  ์ •์ˆ˜ ๊ฐ€์ค‘์น˜; 
 
 

 ๊ณ ์–‘์ด() 
 { 
 } 
}

@XmlType(์ด๋ฆ„ = "๊ฐœ") 
@XmlRootElement 
ํด๋ž˜์Šค  ๊ฐœ 
{ 
๊ณต๊ฐœ  ๋ฌธ์ž์—ด ์ด๋ฆ„; ๊ณต๊ณต  ์—ฐ๋ น; ๊ณต๊ฐœ  ์ •์ˆ˜ ๊ฐ€์ค‘์น˜; 
 
 

 ๊ณ ์–‘์ด() 
 { 
 } 

"์ปฌ๋ ‰์…˜์ด @XmlAny ์ฃผ์„ ์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉด ์ ์ ˆํ•œ ๊ฐœ์ฒด๋ฅผ ๊ทธ ์•ˆ์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  JAXB Unmarshaller ๋Š” ์ปฌ๋ ‰์…˜์„ ์ฑ„์šธ ๋•Œ ํƒœ๊ทธ์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค."

"์ด ๊ฒฝ์šฐ " <zoo> <cat/><cat/> <dog/> <cat/> </zoo> " ํƒœ๊ทธ ์‹œํ€€์Šค๋Š” Cat, Cat, Dog ๋ฐ Cat ๊ฐœ์ฒด๊ฐ€ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ."

"๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ์˜ˆ์ƒํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค."

"์–ดํ—ˆ. ์•„, ๊ทธ๋Ÿฐ๋ฐ ํ•œ ๊ฐ€์ง€ ๋”. ํ…์ŠคํŠธ์™€ ํƒœ๊ทธ์˜ ํ˜ผํ•ฉ์„ ์—ญ์ง๋ ฌํ™”ํ•˜๋Š” ๊ฒฝ์šฐ @XmlMixed ์ฃผ์„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."

"๋‹ค์Œ์€ ์ด๋Ÿฌํ•œ XML ์œ ํ˜•์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค."

@XmlMixed ์ฃผ์„์ด ํ•„์š”ํ•œ ์ƒ˜ํ”Œ XML
<data> 
<items> 
ํ…Œ์ŠคํŠธ 1 <item/> ํ…์ŠคํŠธ 2 <item> ์ด๋ฆ„ </item> ํ…์ŠคํŠธ 3 </items> </data> 

 

 

 

"์™€์šฐ. ๊ทธ๋Ÿฐ XML์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ๊ณ  ์žˆ์—ˆ์–ด. ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์˜๊ณ  ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ๊ทธ ๋ฐ–์˜ ๋ชจ๋“  ๊ฒƒ์— ์ต์ˆ™ํ•ด์กŒ์–ด."

"์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  JAXB์—๋Š” ์ด ๊ฒฝ์šฐ์—๋„ ์ฃผ์„์ด ์žˆ์Šต๋‹ˆ๋‹ค!"

"์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฌผ์–ด๋ณด๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. enum์€ ์–ด๋–ป๊ฒŒ ์ง๋ ฌํ™”๋ฉ๋‹ˆ๊นŒ?"

"์ข‹์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค! ์ž˜ ๋ดค์Šต๋‹ˆ๋‹ค! ๊ทธ ์ฃผ์ œ๋Š” ์–ด๋–ป๊ฒŒ๋“  ๊ฑด๋„ˆ๋›ฐ์—ˆ์Šต๋‹ˆ๋‹ค."

"์—ด๊ฑฐํ˜•์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ํŠน๋ณ„ํ•œ @XmlEnum ์ฃผ์„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ ์ˆซ์ž ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ์ €์žฅํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

"ํŠน์ • enum ํ•„๋“œ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” @XmlEnumValue ์ฃผ์„๋„ ์žˆ์Šต๋‹ˆ๋‹ค."

"์—ฌ๊ธฐ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๊ฐ€ ์žˆ์–ด์š”:"

์ˆซ์ž ๋ฌธ์ž์—ด
@XmlType
@XmlEnum(Integer.class)
public enum Code
{
 @XmlEnumValue("1")
  START,

 @XmlEnumValue("2")
  INPROGRESS,

 @XmlEnumValue("3")
  FINISH

 @XmlEnumValue("-1")
  ERROR
}
@XmlType
@XmlEnum(String.class)
public enum Card
{
 @XmlEnumValue("Spade")
  CLUBS,

 @XmlEnumValue("Diamond")
  DIAMONDS,

 @XmlEnumValue("Heart")
  HEARTS,

 @XmlEnumValue("Club")
  SPADES
}

"Holy moly. ์ด๊ฒŒ ์–ด๋””์— ํ•„์š”ํ• ์ง€ ์ƒ์ƒ์ด ์•ˆ ๋˜์ง€๋งŒ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ‘œ์ค€ ๋ฌธ์ž์—ด์ด๋‚˜ ์ˆซ์ž ๊ฐ’์— ์ง‘์ฐฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค."

"์˜ˆ. ์˜ˆ๋ฅผ ๋“ค์–ด Facebook ์„œ๋ฒ„์™€ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ณ  ํ• ๋‹น๋œ ๊ฐ’ ์ง‘ํ•ฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์— ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ์—ด๊ฑฐํ˜•์— ํ• ๋‹นํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. "

"๋ฉ‹์ง€๋„ค์š”. ์ €๋Š” ํ™•์‹คํžˆ JAXB๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค."

"์ข‹์•„. ๊ทธ๋Ÿผ ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€. ๊ฐ€์„œ ์‰ฌ์–ด."