Ако трябва да направите това само с "box", тогава можете да използвате:
SELECT REPLACE(XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
XMLELEMENT( "Box", xmlattributes( '321' as "id" ))
).getstringval(),'></Box>',' />') as xxx FROM DUAL;
Ако имате други тагове, които трябва да бъдат обработени по този начин, ще трябва да използвате REGEXP_REPLACE, използвайки същата логика.
Семантично обаче и двете форми представляват абсолютно едни и същи данни, поради което не можете да правите това, което искате, "лесно" с някакъв параметър, даден на XML генератора (и защо може би не трябва да правите това на първо място!) .