Обратите внимание, что сериализация Результат XML в SQL Server не будет определяться самим XQuery, а преобразованием типа данных XML в строковое представление. В вашем примере
DECLARE @X XML; SET @X = '<TAG ID="abc"></TAG>'; SELECT @X;
Вы не используете XQuery, вы просто используете XML-анализатор и XML-сериализатор.
Таким образом, даже если бы мы добавили опции сериализации XQuery vNext, они не повлияли бы.
Как упоминает Майкл Кей, нет никакой разницы между двумя сериализациями. Почему вы хотите разграничить их? Если у вас есть инструмент, требующий этой дифференциации, я рекомендую попросить их изменить его, чтобы сделать свой синтаксический анализатор совместимым со стандартом. Кроме того, посмотрите, можете ли вы найти XML-анализатор/сериализатор на стороне клиента, который дает вам варианты того, как сериализовать пустой элемент содержимого.
Если вам нужна полная лексическая верность вместо верности XML Infoset в базе данных, я бы рекомендовал хранить ваш XML в varbinary (max), поскольку это сохранит вашу кодировку и каждую введенную вами кодовую точку за счет для выполнения обработки запросов требуется выполнять команды выполнения во время выполнения.
С наилучшими пожеланиями Майкл
Подразумевая '/>' неприлично? –
Неправильно, но я хочу, чтобы тег был закрыт ''. – Kash