Als u dit alleen met "box" hoeft te doen, kunt u :
SELECT REPLACE(XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
XMLELEMENT( "Box", xmlattributes( '321' as "id" ))
).getstringval(),'></Box>',' />') as xxx FROM DUAL;
Als u andere tags heeft die op deze manier moeten worden verwerkt, moet u REGEXP_REPLACE gebruiken met dezelfde logica.
Semantisch gezien vertegenwoordigen beide vormen echter exact dezelfde gegevens, en daarom kun je niet "gemakkelijk" doen wat je wilt doen met een parameter die aan de XML-generator is gegeven (en waarom zou je dat in de eerste plaats misschien niet moeten doen!) .