Sql server 如何在SQLServer的同一根目录中添加其他属性和XML名称空间值

Sql server 如何在SQLServer的同一根目录中添加其他属性和XML名称空间值,sql-server,xml,xml-namespaces,Sql Server,Xml,Xml Namespaces,我试图在同一根目录下使用和XMLNAMESPACES添加属性和xmln,但无法使其正常工作。请帮忙 下面的SQL查询抛出一个错误 Msg 6852,16级,状态1,第17行 以属性为中心的列“@conference_number”不能位于FOR XML PATH中XML层次结构中非以属性为中心的同级之后 这条线 'HMSXML' AS "pbrc/@source" , URNumber AS "pbrc/@messageHash", 'xmlResult01' AS "pbrc/@integra

我试图在同一根目录下使用
和XMLNAMESPACES
添加属性和xmln,但无法使其正常工作。请帮忙

下面的SQL查询抛出一个错误

Msg 6852,16级,状态1,第17行 以属性为中心的列“@conference_number”不能位于FOR XML PATH中XML层次结构中非以属性为中心的同级之后

这条线

'HMSXML' AS "pbrc/@source" , URNumber AS "pbrc/@messageHash", 'xmlResult01' AS "pbrc/@integration_info"
完整代码:

DECLARE @xml XML;

WITH XMLNAMESPACES (
        'http://www.w3.org/2001/XMLSchema-instance' as xsi
        ,'http://java.sun.com/xml/ns/jaxb/xjc' as xjc
        ,'http://www.powerhealthsolutions.com/pbrc/jaxb/ext' as [pbrc-jaxb]
        ,'http://java.sun.com/xml/ns/jaxb' AS jaxb
        ,DEFAULT 'http://www.powerhealthsolutions.com/pbrc')
SELECT
    @xml = (SELECT 
                'HMSXML' AS "pbrc/@source", 
                URNumber AS "pbrc/@messageHash", 
                'xmlResult01' AS "pbrc/@integration_info",
                AdmissionID AS "@encounter_number", 
                'NDIS' AS organisation_code,
                'NDIS' AS encounter_type,
                (SELECT 
                     'true' AS "@delete",
                     (SELECT 'NDIS' AS class_type, AdmissionDate AS start_date_time 
                      FOR XML PATH ('financial_class'), TYPE) 
                 FOR XML PATH('financial_classes'), TYPE),
                (SELECT 
                     URNumber AS "@entity_number", 
                     (SELECT 'NDIS ID' AS name, NDISNumber AS value 
                      FOR XML PATH ('extra'), ROOT('extras'), TYPE) 
                 FOR XML PATH ('recipient'), TYPE),
                'H' AS referral_source,
                'H' AS separation_status,
                AdmissionDate AS start_date_time
            FROM 
                Episode
            FOR XML PATH('encounter'), ROOT('pbrc'), TYPE)

select @xml
我希望获得如图所示的输出,但我无法实现最后3个属性
integration\u info=“xmlResult03”
messageHash=“4208151”
source=“HMSXML”
。这些将来自SQL选择查询

<?xml version="1.0"?>

-<pbrc xmlns="http://www.powerhealthsolutions.com/pbrc" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:pbrc-jaxb="http://www.powerhealthsolutions.com/pbrc/jaxb/ext" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" integration_info="xmlResult03" messageHash="4208151" source="HMSXML">


-<encounter encounter_number="525241">

<organisation_code>NDIS</organisation_code>

<encounter_type>NDIS</encounter_type>


-<financial_classes delete="true">


-<financial_class>

<class_type>NDIS</class_type>

<start_date_time>2018-06-26T00:00:00</start_date_time>

</financial_class>

</financial_classes>


-<payors>


-<payor>

<payor entity_number="4208151"> </payor>

<slot>Patient</slot>

<start_date>2018-06-26</start_date>

</payor>

</payors>


-<recipient entity_number="4208151">


-<extras>


-<extra>

<name>NDIS ID</name>

<value>430392519</value>

</extra>

</extras>

</recipient>

<referral_source>H</referral_source>

<separation_status>H</separation_status>


-<services>


-<service>

<source_system_code>HMSXML</source_system_code>

<organisation_code>NDIS</organisation_code>

<actual_charge>179.26</actual_charge>

<description1>Arnold Sch - Occupational Therapist</description1>

<quantity>1</quantity>

<service_code>15_048_0128_1_3</service_code>

<start_time>2019-03-27T15:00:00</start_time>

</service>


-<service>

<source_system_code>HMSXML</source_system_code>

<organisation_code>NDIS</organisation_code>

<actual_charge>193.99</actual_charge>

<description1>Arnold Sch - Occupational Therapist</description1>

<quantity>1</quantity>

<service_code>15_056_0128_1_3</service_code>

<start_time>2019-07-30T15:00:00</start_time>

</service>


</services>

<start_date_time>2018-06-26T00:00:00</start_date_time>

</encounter>

</pbrc>

-
-
NDIS
NDIS
-
-
NDIS
2018-06-26T00:00:00
-
-
病人
2018-06-26
-
-
-
NDIS ID
430392519
H
H
-
-
HMSXML
NDIS
179.26
Arnold Sch-职业治疗师
1.
15_048_0128_1_3
2019-03-27T15:00:00
-
HMSXML
NDIS
193.99
Arnold Sch-职业治疗师
1.
15_056_0128_1_3
2019-07-30T15:00:00
2018-06-26T00:00:00

您确定这就是全部错误消息吗?错误消息实际上是以属性为中心的列“@Conference_number”不能位于FOR XML PATH中XML层次结构中非以属性为中心的同级之后?很抱歉迟了答复。我更新了完整的错误信息,你完全正确。有没有解决这个问题的建议?您想要的完整xml结果是什么?当事件表至少有2行时,最好显示要构造/创建的xml。我已将所需的xml输出更新为完整。谢谢