【发布时间】:2015-09-20 00:28:17
【问题描述】:
我在 select 语句中输出 XML 格式的响应。
XML 架构为:Placemark->MultiGeometry->Polygon-><more children>
我正在使用现有数据。
我正在运行的表,我们称之为 table1,有名称(varchar 数据类型)、样式(varchar 数据类型)和几何(XML 数据类型)
几何字段的值已经预先格式化了 xml。所有记录的每个值的根标记是 MultiGeometry。
这就是问题所在。
如果我执行:
select name, style, geometry from table1
for xml path('Placemark'), ELEMENTS
我收到这个:
<Placemark>
<Name>stuff</Name>
<style>style stuff</style>
<Geometry>
<MultiGeometry>...xml...</MultiGeometry>
</Geometry>
</Placemark>
这使架构失败,因为架构(kml 架构)要求 MultiGeometry 是 PLacemark 内的子标记,并且架构无法识别 <Geometry> 标记。
我需要这个:
<Placemark>
<Name>stuff</Name>
<style>style stuff</style>
<MultiGeometry>...xml...</MultiGeometry>
</Placemark>
但尝试:
select name, style, geometry as [ ]
from table1 for xml path('Placemark'), ELEMENTS
查询失败。
如何在没有中间标签(例如<Geometry>)的情况下将 MultiGeometry 放入 Placemark 中?
非常感谢
【问题讨论】:
标签: sql-server xml