sp_xml_preparedocument带有错误“XML文档中只允许一个顶级元素”

时间:2011-01-19 14:12:10

标签: sql xml tsql timestamp

我正在尝试执行sp_xml_preparedocument和geting错误“XML文档中只允许一个顶级元素”

我的T-SQL命令:

DECLARE @aa XML
DECLARE @idoc int
SET @aa =(select * from db_name for xml auto, xmldata) 

@aa现在是

<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" name="Schema7">
<ElementType name="Person" content="empty" model="closed">
  <AttributeType name="preson_id" dt:type="i4" />
  <AttributeType name="Name" dt:type="string" />
  <AttributeType name="Surname" dt:type="string" />
  <AttributeType name="guid" dt:type="uuid" />
  <AttributeType name="version" dt:type="bin.base64" />
  <attribute type="preson_id" />
  <attribute type="Name" />
  <attribute type="Surname" />
  <attribute type="guid" />
  <attribute type="version" />
 </ElementType>
</Schema>
  <Person xmlns="x-schema:#Schema7" preson_id="1" Name="Иван" Surname="Иванов" guid="2E739E87-3CA4-4ED8-ADD0-8B59957668B8" version="AAAAAAAAB9E=" />
  <Person xmlns="x-schema:#Schema7" preson_id="2" Name="Николай" Surname="Николаев" guid="BDC41C59-D70F-4B70-954E-4918B9516AF8" version="AAAAAAAAB9I=" />
  <Person xmlns="x-schema:#Schema7" preson_id="3" Name="Максим" Surname="Максимов" guid="740E57F3-56BA-48B8-92AF-978D7B1D2712" version="AAAAAAAAB9M=" />

EXEC sp_xml_preparedocument @idoc OUTPUT, @aa

The XML parse error 0xc00ce555 occurred on line number 1, near the XML text ""
Msg 6602, Level 16, State 2, Procedure sp_xml_preparedocument, Line 1
The error description is 'Only one top level element is allowed in an XML document

我是新手,我需要帮助))) 还有一个问题 - 解析时间戳类型如何?

如果我使用

SET @aa =(select * from db_name for xml elements, root('root'), type) 

sp_xml_preparedocument工作正常,OPENXML返回我的db_table的所有值,但时间戳值看起来不一样..

抱歉我的英文不好

3 个答案:

答案 0 :(得分:0)

SELECT @aa返回

<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" name="Schema7">
<ElementType name="Person" content="empty" model="closed">
  <AttributeType name="preson_id" dt:type="i4" />
  <AttributeType name="Name" dt:type="string" />
  <AttributeType name="Surname" dt:type="string" />
  <AttributeType name="guid" dt:type="uuid" />
  <AttributeType name="version" dt:type="bin.base64" />
  <attribute type="preson_id" />
  <attribute type="Name" />
  <attribute type="Surname" />
  <attribute type="guid" />
  <attribute type="version" />
 </ElementType>
</Schema>
  <Person xmlns="x-schema:#Schema7" preson_id="1" Name="Иван" Surname="Иванов" guid="2E739E87-3CA4-4ED8-ADD0-8B59957668B8" version="AAAAAAAAB9E=" />
  <Person xmlns="x-schema:#Schema7" preson_id="2" Name="Николай" Surname="Николаев" guid="BDC41C59-D70F-4B70-954E-4918B9516AF8" version="AAAAAAAAB9I=" />
  <Person xmlns="x-schema:#Schema7" preson_id="3" Name="Максим" Surname="Максимов" guid="740E57F3-56BA-48B8-92AF-978D7B1D2712" version="AAAAAAAAB9M=" />

答案 1 :(得分:0)

XML文档只能有一个根元素 - 请参阅W3C specification

因此,在您的情况下,如果Schema是根元素,则无法在末尾添加Person元素

答案 2 :(得分:0)

确保您尝试获取的记录没有重复的条目