วิธีเพิ่มคำสั่งการประมวลผล XML ระหว่าง JAXB marshal

ฉันต้องการเพิ่มคำสั่งการประมวลผลทุกครั้งที่คุณสมบัติคอลเลกชัน/อาร์เรย์ถูกทำให้เป็นอนุกรมเพื่อให้ได้สิ่งที่ต้องการ

<alice>
  <? array bob ?>
  <bob>edgar</bob>
  <bob>david</bob>
</alice>

เป็นไปได้กับ JAXB หรือไม่? หรืออย่างน้อยก็มีการนำ JAXB ไปใช้โดยเฉพาะ?


person chris    schedule 03.08.2011    source แหล่งที่มา


คำตอบ (1)


person    schedule
comment
ขอบคุณ ฉันจะลองใช้ MOXy ดู คำอธิบายประกอบ @ProcessingInstruction คงจะดีอย่างแน่นอน อย่างไรก็ตาม เนื่องจากฉันต้องการเพิ่ม PI สำหรับรายการใดๆ การเพิ่มคำอธิบายประกอบสำหรับคุณสมบัติรายการทั้งหมดในแบบจำลองจึงค่อนข้างไม่สะดวก มีวิธีการลงทะเบียน XmlAdapter ทั่วโลกหรือไม่ - person chris; 09.08.2011
comment
@chris - คุณสามารถลงทะเบียน XmlAdapters ในระดับแพ็คเกจด้วย @XmlJavaTypeAdapters (ดู blog.bdoughan.com/2011/05/) อย่างไรก็ตาม เนื่องจากคุณจะมีรายการที่มีเนื้อหาหลายประเภท สิ่งนี้จึงไม่เหมาะกับคุณ นอกจากนี้ ฉันยังเดาว่าเนื้อหาของ PI จะแตกต่างกันไปตามคุณสมบัติ ซึ่งหมายความว่าโซลูชันต่อคุณสมบัติจะทำงานได้ดีกว่า - person bdoughan; 09.08.2011
comment
โอเคขอบคุณ. น่าเสียดายที่เมธอด marshal(...) ไม่มีข้อมูลใดๆ เกี่ยวกับคุณสมบัติที่เป็น/องค์ประกอบ นี่หมายความว่าฉันต้องใช้คลาสอะแดปเตอร์สำหรับทุกคุณสมบัติรายการ อืม... คำอธิบายประกอบ @ProcessingInstruction คงจะดี - person chris; 10.08.2011
comment
คุณคิดอย่างไรกับ MarshalListener บางประเภทที่สามารถเพิ่มลงใน Marshaller ด้วยวิธี Listener ที่แจ้งเกี่ยวกับเหตุการณ์ Marshal ในปัจจุบัน - person chris; 10.08.2011
comment
@chris - ฉันคิดเกี่ยวกับเรื่องนั้น แต่ MarshalListener อยู่ที่ระดับออบเจ็กต์โดเมน และคุณต้องการเหตุการณ์ระดับฟิลด์/คุณสมบัติจริงๆ - person bdoughan; 10.08.2011
comment
กรอกรหัสของคุณแล้ว แทนหนึ่งครั้งสำหรับรายการ BobAdapter จะถูกเรียกสำหรับแต่ละองค์ประกอบรายการซึ่งทำให้เกิด ClassCastException - person chris; 10.08.2011
comment
โปรดทราบว่า PI จะปรากฏหนึ่งครั้งต่อลำดับอาร์เรย์ - person chris; 10.08.2011
comment
ขอบคุณ; โดยรวมแล้ว ฉันรู้สึกว่าโซลูชัน XmlAdapter ไม่ใช่ตัวเลือกในทางปฏิบัติ คำอธิบายประกอบ ProcessingInstruction ใช้ได้แต่ไม่พร้อมใช้งาน สิ่งที่ฉันกำลังมองหาจริงๆ คือวิธีสกัดกั้นกระบวนการจัดเรียงเพื่อเพิ่ม PI สำหรับแต่ละรายการ - person chris; 15.08.2011