3

我构建 XML 的查询包括子查询。子记录应该进入容器元素。即使没有子记录,XML 也必须具有容器元素。

考虑以下。<Patients>即使没有子记录或验证失败,容器元素也必须存在。

<Hospital>
    <Patients>
        <Patient></Patient>
        <Patient></Patient>
        <Patient></Patient>
    </Patients>
</Hospital>

我尝试了几种不同的方法FOR XML PATH

select
    (
        select
            PatientFields
        from
            PatientTable
        for xml path('Patient'), root('Patients'), elements xsinil, type
    )
for xml path('Hospital'), elements xsinil, type

上述方法将<Patients>元素完全排除在空集之外。

下面的一个包含标签但添加了xsi:nil="true"属性,这也会导致验证失败。

select
    (
        select
            PatientFields
        from
            PatientTable
        for xml path('Patient'), elements xsinil, type
    ) Patients
for xml path('Hospital'), elements xsinil, type

有没有办法强制容器元素存在?

4

1 回答 1

2
select
    (
        select
            'John Doe'
        where 1 = 0
        for xml path('Patient'), type
    )
for xml path('Patients'), root('Hospital'), type
于 2013-07-03T21:19:00.587 回答