SQL Server XML DML未声明的前缀

时间:2013-08-27 09:32:42

标签: sql-server xml xsd xml-dml

我无法理解为什么在这个简单的代码行中出现错误“XML解析:第2行,第45个字符,未声明的前缀”:

DECLARE @ECAS XML;
SET @ECAS = 'declare namespace xs="http://www.w3.org/2001/XMLSchema";
             <xs:element name="ecasData">
               <xs:complexType>
                 <xs:all minOccurs="1" maxOccurs="1"/>
               </xs:complexType>
             </xs:element>';

SELECT @ECAS;

在句子的开头是不是声明了命名空间xs?任何帮助将不胜感激。 感谢。

2 个答案:

答案 0 :(得分:3)

DECLARE @ECAS XML;

SET @ECAS = '<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ecasData" >
               <xs:complexType>
                 <xs:all minOccurs="1" maxOccurs="1"/>
               </xs:complexType>
             </xs:element>';
SELECT @ECAS;

答案 1 :(得分:1)

为了理智,即使它与您的代码没有直接关系,并且因为这是“未声明的前缀”的顶级Google帖子,也请在xml中查找xsi:nil="true"