【问题标题】:SQL Server XML DML Undeclared prefixSQL Server XML DML 未声明的前缀
【发布时间】:2013-08-29 23:39:33
【问题描述】:

我不明白为什么在这行简单的代码中出现错误“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 吗?任何帮助将不胜感激。 谢谢。

【问题讨论】:

    标签: sql-server xml xsd xml-dml


    【解决方案1】:
    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;
    

    【讨论】:

    • 谢谢!但是现在,当我将此片段插入另一个声明了此命名空间的文档中时,重复声明。有没有什么好方法可以在不将 xml 视为字符串的情况下摆脱这种情况?
    • 你是怎么插入的?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      相关资源
      最近更新 更多