“”是有效的XML吗? 可以将“”插入到Oracle XBlob列或来自MSSQL的XML列中吗?
不。 规范 指出,符合格式要求的XML文档应满足以下条件:
document ::= prolog element Misc*
where
element ::= EmptyElemTag
| STag content ETag
这不是一个XML文档 - 至少需要一个根元素,最多只能有一个。如果编码为UTF-8,版本为1.0(XML推荐的生产22),则XML声明是可选的。它是一个有效的XML 片段 - 可以是空文本节点或者是一个空范围。
您必须在上下文中定义“XML片段”的含义。
这不是有效的XML,但可以插入到SQL Server 2005的XML列中。显然,在SQL Server 2005中,您需要将双引号替换为单引号:
Insert Into MyTestTable(MyXmlColumn) Values('');
这个方法很好用 - 我刚测试了一下,插入成功了。
但是Oracle不允许空的XML。表达式XMLType('')
会引发异常"ORA-19032: 预期XML标签,但没有内容"。
这不是有效的 XML。有效的 XML 需要一个带有编码类型和根节点的 XML 声明。无论 Oracle 或 SQL Server 是否接受它,你都可以自行检查。