Hvis du kun skal gøre dette med "boks", så kan du bruge :
SELECT REPLACE(XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
XMLELEMENT( "Box", xmlattributes( '321' as "id" ))
).getstringval(),'></Box>',' />') as xxx FROM DUAL;
Hvis du har andre tags, der skal behandles på denne måde, skal du bruge REGEXP_REPLACE ved hjælp af den samme logik.
Semantisk repræsenterer begge former dog nøjagtig de samme data, hvilket er grunden til, at du ikke kan gøre, hvad du vil gøre "let" med en eller anden parameter givet til XML-generatoren (og hvorfor du måske ikke skulle gøre det i første omgang!) .