Se devi farlo solo con "box", puoi usare :
SELECT REPLACE(XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
XMLELEMENT( "Box", xmlattributes( '321' as "id" ))
).getstringval(),'></Box>',' />') as xxx FROM DUAL;
Se hai altri tag che devono essere elaborati in questo modo, dovrai utilizzare REGEXP_REPLACE utilizzando la stessa logica.
Semanticamente, però, entrambe le forme rappresentano esattamente gli stessi dati, motivo per cui non puoi fare quello che vuoi fare "facilmente" con alcuni parametri forniti al generatore XML (e perché forse non dovresti farlo in primo luogo!) .