Se você só precisa fazer isso com "box", então você pode usar:
SELECT REPLACE(XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
XMLELEMENT( "Box", xmlattributes( '321' as "id" ))
).getstringval(),'></Box>',' />') as xxx FROM DUAL;
Se você tiver outras tags que precisam ser processadas dessa forma, você precisará usar REGEXP_REPLACE usando a mesma lógica.
Semanticamente, porém, ambas as formas representam exatamente os mesmos dados, e é por isso que você não pode fazer o que deseja "facilmente" com algum parâmetro fornecido ao gerador de XML (e por que talvez você não deva fazer isso em primeiro lugar!) .