หากคุณสามารถควบคุมรูปแบบ XML ได้คุณควรแก้ไขปัญหาจากภายนอก แทนที่จะแนบไบนารี XML คุณควรคิดถึงวิธีการแนบเอกสารที่มีหลายส่วนซึ่งหนึ่งในนั้นมี XML
วิธีแก้ปัญหาแบบเดิมคือไฟล์เก็บถาวร (เช่น tar) แต่ถ้าคุณต้องการเก็บเอกสารที่แนบมาในรูปแบบข้อความหรือหากคุณไม่สามารถเข้าถึงไลบรารีการเก็บไฟล์ได้นอกจากนี้ยังมีรูปแบบมาตรฐานที่ใช้อย่างมากในอีเมลและ HTTP ซึ่งเป็นหลายส่วน / * MIMEด้วยContent-Transfer-เข้ารหัส: ไบนารี
ตัวอย่างเช่นหากเซิร์ฟเวอร์ของคุณสื่อสารผ่าน HTTP และคุณต้องการส่งเอกสารแบบหลายส่วนเอกสารหลักเป็นเอกสาร XML ที่อ้างถึงข้อมูลไบนารีการสื่อสาร HTTP อาจมีลักษณะดังนี้:
POST / HTTP/1.1
Content-Type: multipart/related; boundary="qd43hdi34udh34id344"
... other headers elided ...
--qd43hdi34udh34id344
Content-Type: application/xml
<myxml>
<data href="cid:data.bin"/>
</myxml>
--qd43hdi34udh34id344
Content-Id: <data.bin>
Content-type: application/octet-stream
Content-Transfer-Encoding: binary
... binary data ...
--qd43hdi34udh34id344--
ดังตัวอย่างข้างต้น XML อ้างถึงข้อมูลไบนารีในหลายส่วนที่ล้อมรอบโดยใช้cid
โครงร่าง URI ซึ่งเป็นตัวระบุของส่วนหัว Content-Id ค่าใช้จ่ายของโครงการนี้จะเป็นเพียงส่วนหัว MIME นอกจากนี้ยังสามารถใช้รูปแบบที่คล้ายกันสำหรับการตอบสนอง HTTP แน่นอนในโปรโตคอล HTTP คุณยังมีตัวเลือกในการส่งเอกสารหลายส่วนไปยังคำขอ / การตอบกลับแยกกัน
หากคุณต้องการหลีกเลี่ยงการรวมข้อมูลของคุณในหลายส่วนคือการใช้ URI ข้อมูล:
<myxml>
<data href="data:application/something;charset=utf-8;base64,dGVzdGRhdGE="/>
</myxml>
แต่นี่มีค่าใช้จ่าย base64