Является ли пустая строка допустимым XML? - PullRequest
5 голосов
/ 18 декабря 2008

Является ли '' допустимым фрагментом XML? Может ли '' вставить в столбец оракула xblob или столбец XML из MSSQL?

Ответы [ 4 ]

6 голосов
/ 18 декабря 2008

Нет. spec говорит, что правильно сформированный XML-документ удовлетворяет:

document ::=  prolog  element  Misc*

, где

element ::= EmptyElemTag
              | STag content ETag 
3 голосов
/ 18 декабря 2008

Это недопустимый xml, но его можно вставить в столбец XML в SQL Server 2005. Я не могу говорить за Oracle, но я почти готов поспорить, что это возможно.

Очевидно, что в SQL Server 2005 вам нужно обменять двойные кавычки на одинарные кавычки:

Insert Into MyTestTable(MyXmlColumn) Values('');

Это прекрасно работает - я только что проверил, и вставка прошла успешно.

3 голосов
/ 18 декабря 2008

Это не документ XML - должен быть хотя бы один и максимум один корневой элемент. (Объявление XML является необязательным, если кодировка UTF-8, а версия 1.0 - производство 22 рекомендации XML). Это допустимый фрагмент XML - либо пустой текстовый узел, либо пустой диапазон.

Вы должны будете определить, что означает «кусок XML» в вашем контексте.

1 голос
/ 18 декабря 2008

Это не действительный xml. Действительный xml требует объявления xml с типом кодировки и корневым узлом. Будь то Oracle или SQL Server примет это в любом случае - это то, что вы можете проверить сами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...